сворачивание окна jframe нажатием кнопки jbutton

Я знаю, что для минимизации jframe мне нужно использовать setExtendedState(JFrame.ICONIFIED);
Но я пытаюсь понять, как добраться до фрейма. Этот диалог является дочерним по отношению к родительскому диалогу. Вот Конструктор.

    public EdiBaseDialog(EdiDialogHandler edh, Frame parent, TCSession theSession) {
      super(parent, false);
      session = theSession;
      createDialog();
   } 

Поэтому, когда я пытаюсь добавить команду setExtendedState(JFrame.ICONIFIED) в свой jbutton actionPerformed. Который находится в методе JPanel.

Я не знаю, как обратиться к кадру.

??.setState(JFrame.ICONFIED);

person jkteater    schedule 07.08.2012    source источник


Ответы (2)


Вызовите Dialog.getOwner() из внутри диалога.

person Andrew Thompson    schedule 07.08.2012

Что вам нужно сделать, так это подняться в иерархии компонентов, пока вы не доберетесь до фрейма. Для этого в Swing уже есть вспомогательные методы. Попробуйте SwingUtilties:

SwingUtilities.getAncestorOfClass(JFrame.class, это);

(Где «это» может быть любым компонентом в иерархии). Конечно, это будет полезно только в том случае, если ваши диалоги формируют правильную иерархию (никаких диалогов, использующих владельца NULL. Если это так, вы должны передать кадр через некоторый метод или конструктор.

person Durandal    schedule 07.08.2012