2011-03-27 92 views
0

我有一个JFrame与它的一些组件。我希望框架消失,当我点击一个特殊的按钮,例如exit button问题与setVisible(布尔值)

我在退出按钮

this.setvisible(false); 

写了这个代码,但它只是隐藏在它的组件和框架不会消失。

我可以做什么,当我点击exit button框架消失?

+0

请出示相关的代码。我想'this'是指JButton而不是JFrame。 – Howard 2011-03-27 08:28:40

+0

好吧,setvisible不会退出程序。 – 2011-03-27 08:38:51

+0

@experimentX - 您可以在应用程序中使用多个JFrame,并且其中一些可以隐藏一段时间。 – 2011-03-27 08:43:38

回答

2

在您的通话this.setVisible(false)this大概是指按钮,而不是框架。

您需要在Frame上调用setVisible()而不是按钮。

另外请确保您在框架上调用dispose()以清理所有资源。

此外,您也应该使用

setDefaultCloseOperation(DISPOSE_ON_CLOSE); 

创建框架的过程中,以确保窗口正确关闭并设置当用户单击右上角的“标准”关闭按钮(在Windows )。

本教程还可以帮助你了解这是怎么回事更好:

http://download.oracle.com/javase/tutorial/uiswing/components/frame.html

3

这里是一个隐藏帧按钮的例子:

final JFrame frame = new JFrame(); 
frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
final JButton hideButton = new JButton("hide frame"); 
frame.add(hideButton); 
hideButton.addActionListener(new ActionListener() { 

    public void actionPerformed(ActionEvent e) { 
     frame.setVisible(false); 
    } 

}); 

frame.setVisible(true); 
frame.pack(); 
+0

我想这样.... – 2011-03-27 08:44:47

0

调用它的JFrame对象。 例如: // when exit is pressed

fr.setVisible(false); // fr is a reference to object of type JFrame`