Описание проблемы:
Я хочу на некоторую кнопочку повесить вывод двух диалоговых окошек. После отображения второго Ме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