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


Автор: kosmonaFFFt 21.5.2008, 15:07
Доброго всем времени суток.

Пишу программулну, используя Swing (на NetBeanse), по нажатию на один из пункта меню,
создается и отображается один фрейм, куда пользователь что то вводит и закрывает.
Последствия действий пользователя сохраняются в статической булевой переменной определенного класса.
Надо сделать так, чтобы метод формы, вызываемый по нажатию этой самой кнопки меню и создающий фрейм
приостанавливался пока фрейм не закроется.

Примерно так:
Код

private void SomeMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                              
        SomeFrame someFrame = new SomeFrame();
        SomeFrame.setVisible(true);
        //Тут этот метод должен приостановиться до закрытия созданного фрейма.
        //Тут происходит проверка состояния статической переменной класса и дальнейшие действия.
        if (SomeClass.someVariable == true) {
            //bla-bla-bla;
        } else {
            //bla-bla-bla
        }
    }        


Пробовал делать someFrame.wait() но скорее всего я недопонял описание сего метода в доках (ибо не по русски)

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

Автор: COVD 21.5.2008, 15:15
а не проще ли открывать не фрейм, а диалог: String input = JOptionPane.showInputDialog("....");  

Автор: math64 21.5.2008, 15:52
Код

final SomeFrame someFrame = new SomeFrame();
someFrame.addWindowListener(new WindowAdapter(){
  public void windowClosed(WindowEvent e) {
    // окно закрыто
    if (someFrame.getSomeVariable() == true) {
      // code1
    } else {
      // code2
    }
  }
});
someFrame.setVisible(true);

Автор: math64 21.5.2008, 15:52
Код

final SomeFrame someFrame = new SomeFrame();
someFrame.addWindowListener(new WindowAdapter(){
  public void windowClosed(WindowEvent e) {
    // окно закрыто
    if (someFrame.getSomeVariable() == true) {
      // code1
    } else {
      // code2
    }
  }
});
someFrame.setVisible(true);

Автор: kosmonaFFFt 23.5.2008, 08:19
Спасибо. Решено.

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