2010-03-11 2 views
0

Следующая ситуация:Как сохранить мэйнфрейм за диалогом при переключении окон верхнего уровня?

У меня есть JFrame и звоните JOptionPane.showInputDialog("test"). Отобразится модальный диалог.

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

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

ответ

2

Я не знаю, как это сделать с помощью статических методов 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();   
     } 
    }); 
+0

именно то, что я искал! спасибо –

+0

Вам, вероятно, следует использовать диалог 'JOptionPane', чтобы обеспечить стандартную платформу для восприятия сообщения. Верно, что вы не можете получить диалог с помощью статических методов JOptionPane, но вы можете создать экземпляр 'JOptionPane', а затем вызвать его' createDialog'. –

 Смежные вопросы

  • Нет связанных вопросов^_^