2012-10-05 67 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));方法