使用jbutton单击最小化jframe窗口

时间:2012-08-07 14:34:52

标签: java swing jframe awt jdialog

我知道要最小化jframe,我需要使用setExtendedState(JFrame.ICONIFIED);
但我想弄清楚的是如何到达框架。此对话框是父对话框的子对话框。这是构造函数。

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

所以当我尝试在我的jbutton actionPerformed中添加setExtendedState(JFrame.ICONIFIED)命令时。这是在JPanel方法中。

我不知道如何解决这个问题。

??.setState(JFrame.ICONFIED);

2 个答案:

答案 0 :(得分:2)

在对话框中调用Dialog.getOwner()

答案 1 :(得分:1)

您需要做的是进入组件层次结构,直到到达框架。 Swing中已有辅助方法来执行此操作。试试SwingUtilties:

  

SwingUtilities.getAncestorOfClass(JFrame.class,this);

('this'可以是层次结构中的任何组件) 当然,只有当你的对话框形成一个正确的层次结构时才会使用它(没有使用NULL所有者的对话框。如果是这种情况,你必须通过一些方法或构造函数传递Frame。