2014-09-18 3 views
2

Я работаю над программой Java GUI прямо сейчас. (Использование Eclipse + Windowbuilder)Java, как ждать диалогового окна

У меня следующая ситуация:

подпрограмма B вызывает окно Dialog, чтобы задать пользователю для ввода и заканчивается с заходом программе А. Но я не хочу, программа А будет еще называется. Он должен вызываться после завершения окна диалога.

B: 
dialogWindow(); 
<------- here B should wait for dialogWindow to finish 
A(); 
exit(); 

Есть ли способ ждать для DialogWindow()? (Я не хочу переместить команду A();)

Заранее спасибо.

EDIT: ДиалогWindow на самом деле является просто нормальным JFrame.

+3

установить флаг Модальные к истинному –

ответ

3

Вы можете использовать setModal(true) для YourPopUpComponent, которые должны наследовать JDialog или использовать JOptionPane.showDialog

import javax.swing.JOptionPane; 

public class TestDialog { 

    public static void main(String[] args) { 

    int resp = JOptionPane.showConfirmDialog(null, "A", "B", JOptionPane.YES_NO_OPTION);   
    if (resp == 0) 
    System.out.println("call methodA()"); 
    else 
     System.out.println("call foo()"); 


    } 
} 
+0

Чтобы продемонстрировать это, вы можете использовать« int response = JOptionPane ... », а затем показать, что System.out.println может печатать выбранное значение ответа. – Compass

+1

@ Компас обновил мой ответ – sol4me

+0

Мне очень нравится этот метод. Это решает вопрос. – user4054919

-2

GUI-программирование на Java основано на событиях.

Таким образом, вы добавляете ActionListener к кнопке отправки вашего диалогового окна, этот ActionListener будет вызывать A() и завершается.

+1

Он сказал, что он не хочет, чтобы переместить вызов A(). Установка модального флага в диалоговом окне - это необходимое ему решение. –

+0

oups, не читал эту часть -_- « – Sporniket

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