Здравствуйте, Аноним, Вы писали:
А>хочу что бы печатались русские буквы в TextArea когда она не в фокусе А>вот написал программу все прекрасно работает (не без помощи rsdn)
А>но есть одна неприятность А>когда я хочу скопировать из TextArea что-то А>она попадает в фокус и буквы перестают печататься
А>почему ?
Скорее всего потому что у тебя печать замаплена на ContentPane, а если фокус TextArea, то соответсвенно в ContentPane его нет. Одного не пояму. Для чего ты так извращаешься. Вот например, ты не задумывался над тем, что у тебя на каждый символ создаётся по одному объекту (ActionListsner)?
А>P.S я наверно уже всех достал...
Да все бы ничего, но ты хотя бы зарегестрировался...
Re[2]: Опять клваиатура...
От:
Аноним
Дата:
23.03.04 11:00
Оценка:
Здравствуйте, Blazkowicz, Вы писали:
B>Здравствуйте, Аноним, Вы писали:
А>>хочу что бы печатались русские буквы в TextArea когда она не в фокусе А>>вот написал программу все прекрасно работает (не без помощи rsdn)
А>>но есть одна неприятность А>>когда я хочу скопировать из TextArea что-то А>>она попадает в фокус и буквы перестают печататься
А>>почему ?
B>Скорее всего потому что у тебя печать замаплена на ContentPane, а если фокус TextArea, то соответсвенно в ContentPane его нет. Одного не пояму. Для чего ты так извращаешься. Вот например, ты не задумывался над тем, что у тебя на каждый символ создаётся по одному объекту (ActionListsner)?
Но если замапить на TextArea все равно не работает я пробовал
Насчет ActionListsner это точно но я подркгому пока незнаю как сделать ...
сегодня же зарегистрюсь
Re[2]: Опять клваиатура...
От:
Аноним
Дата:
23.03.04 11:06
Оценка:
Здравствуйте, Blazkowicz, Вы писали:
B>для чего ты так извращаешься. )?
вот такая задача представьте что у вас два поля для ввода слева и справа
печатать надо только влевое всегда куда бы фокус не попал а также надо
копировать информацию мышкой из правого поля
если его сделать UnFocusable то все прекрасно и замечательно но копирование мышкой всеми любимое пропадает вот и приходиться что-то придумывать ....
Здравствуйте, <Аноним>, Вы писали:
А>Здравствуйте, Blazkowicz, Вы писали:
B>>Здравствуйте, Аноним, Вы писали:
А>>>хочу что бы печатались русские буквы в TextArea когда она не в фокусе А>>>вот написал программу все прекрасно работает (не без помощи rsdn)
А>>>но есть одна неприятность А>>>когда я хочу скопировать из TextArea что-то А>>>она попадает в фокус и буквы перестают печататься
А>>>почему ?
B>>Скорее всего потому что у тебя печать замаплена на ContentPane, а если фокус TextArea, то соответсвенно в ContentPane его нет. Одного не пояму. Для чего ты так извращаешься. Вот например, ты не задумывался над тем, что у тебя на каждый символ создаётся по одному объекту (ActionListsner)?
А>Но если замапить на TextArea все равно не работает я пробовал А>Насчет ActionListsner это точно но я подркгому пока незнаю как сделать ...
А>сегодня же зарегистрюсь
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, <Аноним>, Вы писали:
А>>Здравствуйте, Blazkowicz, Вы писали:
B>>>Здравствуйте, Аноним, Вы писали:
А>>>>хочу что бы печатались русские буквы в TextArea когда она не в фокусе А>>>>вот написал программу все прекрасно работает (не без помощи rsdn)
А>>>>но есть одна неприятность А>>>>когда я хочу скопировать из TextArea что-то А>>>>она попадает в фокус и буквы перестают печататься
А>>>>почему ?
B>>>Скорее всего потому что у тебя печать замаплена на ContentPane, а если фокус TextArea, то соответсвенно в ContentPane его нет. Одного не пояму. Для чего ты так извращаешься. Вот например, ты не задумывался над тем, что у тебя на каждый символ создаётся по одному объекту (ActionListsner)?
А>>Но если замапить на TextArea все равно не работает я пробовал А>>Насчет ActionListsner это точно но я подркгому пока незнаю как сделать ...
А>>сегодня же зарегистрюсь
L> твоей версии если добавить L>
L> jt1.setFocusable(false);
L>
L>то все заработает.
Это 100% но тогда нельзя будет скопировать информацию с TextArea
Здравствуйте, Аноним, Вы писали:
B>>для чего ты так извращаешься. )?
А>вот такая задача представьте что у вас два поля для ввода слева и справа А>печатать надо только влевое всегда куда бы фокус не попал а также надо А>копировать информацию мышкой из правого поля А>если его сделать UnFocusable то все прекрасно и замечательно но копирование мышкой всеми любимое пропадает вот и приходиться что-то придумывать ....
Если бы дело ограничивалось двумя TextArea, то множно было бы редиректить события из одного в другое... но с большим количеством разных компонент много кода получается.
Здравствуйте, Blazkowicz, Вы писали:
B>Здравствуйте, Аноним, Вы писали:
B>>>для чего ты так извращаешься. )?
А>>вот такая задача представьте что у вас два поля для ввода слева и справа А>>печатать надо только влевое всегда куда бы фокус не попал а также надо А>>копировать информацию мышкой из правого поля А>>если его сделать UnFocusable то все прекрасно и замечательно но копирование мышкой всеми любимое пропадает вот и приходиться что-то придумывать ....
B>Если бы дело ограничивалось двумя TextArea, то множно было бы редиректить события из одного в другое... но с большим количеством разных компонент много кода получается.
компонент довольно много нагромождены целая куча
и к сожалению не мной писаных я просто добавляю некоторую функциональность ....
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, Blazkowicz, Вы писали:
B>>Здравствуйте, Unquoted:
B>>Вот как можно сдыхаться всех этих слушателей:
B>>
L>тока наверное лучше использовать processComponentKeyEvent(KeyEvent e)
а как это можно заставить работать? чет у меня нифига не работает, JDK1.4.1 WinXP? мона больший участок кода?
правда на JDK1.3.1 processS=KeyEvent отрабатывает....
Здравствуйте, Alekseymir, Вы писали:
A>а как это можно заставить работать? чет у меня нифига не работает, JDK1.4.1 WinXP? мона больший участок кода? A>правда на JDK1.3.1 processS=KeyEvent отрабатывает....
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
public class Test extends JFrame {
private JTextArea jt1;
JScrollPane jsp;
JPanel jp;
public Test() {
jt1 = new JTextArea(10, 15);
jt1.setEditable(false);
jt1.setFocusable(false);
setRootPane(createMyRootPane());
jp = new JPanel();
jp.add(new JScrollPane(jt1));
jp.setFocusable(false);
getContentPane().add(jp);
getContentPane().setFocusable(true);
}
private JRootPane createMyRootPane() {
JRootPane rootPane = new JRootPane();
rootPane.setContentPane(new JPanel()
{
protected void processComponentKeyEvent(KeyEvent e)
{
if(e.getID() == KeyEvent.KEY_TYPED)
jt1.append("" +e.getKeyChar());
}
});
return rootPane;
}
public static void main(String[] args) {
Test frame = new Test();
frame.setBounds(200, 200, 200, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
Здравствуйте, Alekseymir, Вы писали:
A>Thanks a lot... A>правда под ХР все равно чет пока не работает, буду разбираться, интересно..... , зато под 2К все ок
У меня тоже ХР и 1.4.1.