2011-05-04 77 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