2012-10-05 48 views
1

在編程方面,我是一名新手。我們有一個關於登錄賬戶的項目。我剛開始這樣做;我遇到了一個具體問題。我想用一個按鈕關閉一個框架。我試圖把我的frame.dispose(),set.Visible(假)等,但我剛剛得到一個錯誤。我不太明白。我非常感謝幫助!謝謝!在eclipse中使用按鈕關閉JFrame

+0

看起來像重複問題: http://stackoverflow.com/questions/12688874/close-window-on-button-click – Farnabaz

+1

你什麼錯誤? – Clark

回答

4

下面是您要做的一個簡單示例。你收到什麼錯誤?

private void initialize() { 
    frame = new JFrame(); 
    frame.setBounds(100, 100, 450, 300); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    JButton btnClose = new JButton("CLOSE"); 
    btnClose.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      frame.setVisible(false); 
     } 
    }); 
    frame.getContentPane().add(btnClose, BorderLayout.NORTH); 
} 
+1

+1良好的捕獲,但更好的可能是發佈可運行的代碼 – mKorbel

+0

謝謝mKorbel我會記住我的未來職位。 – Drose

+0

非常感謝您的幫助。 :D我得到了我的答案。 setVisible和dispose()是有幫助的。我想我應該讀更多。 :D問題解決! :D –

3

JButtonsActionListener你可以調用

  • JFrame#dispose();(終止當前JVM)

  • JFrame#setVisible(false);(隱藏的JFrame)

  • System.exit(0);(終止當前JVM)

和/或(另一種標準的方式是)

+0

+1另請參閱此[方法](http://stackoverflow.com/a/5540802/230513)使用'dispatchEvent()'。 – trashgod

+0

感謝您的反饋。問題解決了! :d –

0

當您通過虛假關閉任何對象可見的,實際上你只是隱藏那個對象,而對象仍然留在內存中。您最好使用 frame.dispatchEvent(new windowEvent(frame,windowEvent.window_closeing));方法