Как сохранить основной блок за диалогом при переключении окон верхнего уровня? - PullRequest
0 голосов
/ 11 марта 2010

Следующая ситуация:

У меня есть JFrame и звоните JOptionPane.showInputDialog("test"). Будет показан модальный диалог.

Когда я переключаюсь в другое открытое окно в Windows (скажем, в Firefox), а затем возвращаюсь в свое Java-приложение (нажав вкладку на панели задач Windows или с помощью ALT + TAB), тогда будет отображаться только диалог. 1006 *

Можно ли показать основной кадр за диалогом при переключении на мое приложение? Например. Eclipse ведет себя желаемым образом, когда вы открываете диалог настроек. Eclipse - это SWT, но, возможно, это возможно и в Swing!

1 Ответ

2 голосов
/ 11 марта 2010

Я не знаю, как это сделать с помощью статических методов JOptionPane, поскольку у вас нет доступа к самому диалогу. Однако вы, вероятно, можете достичь того же, создав собственный диалог и добавив прослушиватель, подобный следующему:

    final JDialog dialog = new JDialog();
    dialog.setTitle("Test Input");
    dialog.setModal(true);


    dialog.addWindowFocusListener(new WindowFocusListener() {

        @Override
        public void windowLostFocus(WindowEvent arg0) {

        }

        @Override
        public void windowGainedFocus(WindowEvent arg0) {
            frame.toFront();        
        }
    });
...