проблема с раздвоением фокуса, двойной фокус
От: antonnov  
Дата: 08.07.03 07:29
Оценка:
Описание проблемы:
Я хочу на некоторую кнопочку повесить вывод двух диалоговых окошек. После отображения второго МеssageDialog (cм. листинг ниже) в фокусе оказывается и кнопочка "ОК" в диалоговом окошке и кнопочка "test" в окошке программы.

После закрытия MessageDialog фокус устанавливается на tfField а кнопка "test" остается в рамочке фокуса и фокус пsперестает на нее переходить по клавише "tab".

На следующей итерации таким же образом "зависает" tfField и т.д. Таким образом фокусы размножаются .

Листинг:

final JButton btn = new JButton("test");
        btn.addActionListener(new AbstractAction(){
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(null, "AAAAAA");
                JOptionPane.showMessageDialog(null, "AAAAAA");
                tfField.transferFocus(); // cущественная строчка, фокус надо переставлять 
                                                     // на другую компоненту
              }               
            });



Мои решения:
Я придумал два способа борьбы с этим "багом". Оба меня не устраивают. Первый помещать каждый ShowMessage диалог в отдельный поток. Второй скрывать основную форму,
setVisible(false)
в начале и
setVisible(true)
в конце метода actionPerformed().

В Java не большой специалист, если кто знает в чем дело -- помогите плз. :D
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.