2011-05-04 78 views
3

我正在用记录器制作一个程序。记录器有它自己的JFrame。 我试图通过点击该框架的最小化按钮来覆盖该反应。 我想框架要么setVisible(false)或做defaultCloseOperation(因为我设置为隐藏更早)。覆盖JFrame的最小化

我该怎么做? 在此先感谢

+3

@ user545236,应用程序应该只有一个单一的JFrame。其他助手窗口应该是对话框。接受的答案可能会起作用,但这不是JFrame的正确用法,这就是为什么存在JDialogs的原因。 – camickr 2011-05-04 03:33:58

回答

8

使用JDialog而不是JFrame。 JDialogs没有最小化按钮。

2

您可以添加一个WindowListener并添加一个iconified handler,当窗口最小化时它会作出反应。

可能:

frame.addWindowListener(new WindowAdapter(){ 

     public void windowIconified(WindowEvent e){ 
      frame.setVisible(false); 
     } 
}); 
+0

治疗疾病,不要医生的症状;-)只是为了强调罗布的评论... – kleopatra 2011-05-04 11:07:48

1

可以使用WindowStateListener这样

f.addWindowStateListener(new WindowStateListener() { 

     @Override 
     public void windowStateChanged(WindowEvent arg0) { 
      if (arg0.getNewState() == Frame.ICONIFIED) { 
       // do stuff 
      } 

     } 
    }); 
0

试试这个:

frame.addWindowListener(new WindowAdapter() { 
@Override 
     public void windowIconified(WindowEvent event) 
     { 
      //do your stuff 
     } 
}); 
+2

您的回答重复现有的答案http://stackoverflow.com/a/5877604/1400768与更少的信息或解释。 – nhahtdh 2015-09-21 07:36:14