Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Модальный диалог


Автор: Galaran 4.6.2009, 22:30
Привет

решил для модального диалога сделать статическую функцию вызова:

Вызов:

Код

Group newInfo = GroupDialog.showGroupDialog(Mode.EDIT, edited);


Класс GroupDialog
Код

public class GroupDialog extends JDialog implements ActionListener {

    private Mode _mode;
    private Group _templ;
    private static Group _newGroup;

    ...

    public GroupDialog(Mode mod, Group templ) {
        _mode = mod;
        _templ = templ;
        initComponents();
        setFields(templ);
    }

    public static Group showGroupDialog(Mode mod, Group templ) {
        GroupDialog gr = new GroupDialog(mod, templ);
        gr.setVisible(true);
        gr.setModal(true);
        // вот здесь выполнение должно приостановиться до закрытия диалога
        return _newGroup;
    }
     public void setFields(Group gr) {
        // устанавливает значение для редактируемых полей в диалоге
    }
     // обработчики
     // ...
    public Group getResult() {
        return _newGroup;
    }


Но выполение не приостанавливается, а сразу возвращает _newGroup
Причем, вызов без статического метода исправно работает:
Код

GroupDialog grDial = new GroupDialog(Mode.EDIT, edited);
grDial.setModal(true);
grDial.setVisible(true);
Group newInfo = grDial.getResult();


подскажите, где я накосячил ?

Автор: powerOn 5.6.2009, 20:19
в первый раз ты делал вызовы в таком порядке: setVisible(true); setModal(true);
а во второй раз: setModal(true); setVisible(true); 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)