如何在推送JButton时关闭单个GUI?

时间:2017-04-19 18:50:46

标签: java swing jbutton

我编写了一些具有GUI的编码,该GUI具有一个输入按钮,当单击该按钮时,会打开另一个我创建的GUI。之后显示的GUI还有2个按钮。其中一个做正确的事情,我希望第二个按钮关闭GUI,但只有第二个按钮,所以第一个应该保留在屏幕上。我使用System.exit(0),但关闭了bouth GUI。 anayone是否知道要写什么才能关闭一个GUI?

2 个答案:

答案 0 :(得分:1)

  

单击时,打开我创建的另一个GUI。

第二个" GUI"应该是JDialog,而不是JFrame。

  

我使用了System.exit(0)但关闭了用户界面。

相反,你应该使用:

dialog.dispose();

所以你需要一个对话框的引用。您可以使用以下命令获取对当前窗口的引用:

JButton button = (JButton)e.getSource();
Window dialog = SwingUtilities.windowForComponent( button );

getSource()方法来自ActionEvent的{​​{1}}类。

或者更好的方法是模拟"关闭"单击对话框的按钮。查看Closing an Application。此链接中的ActionListener将向对话框发送一个事件。

注意:您不需要使用" CloseListener"在链接中,只有ExitAction,然后确保在创建对话框时使用ExitAction

答案 1 :(得分:0)

我假设您在谈论GUI时谈论的是JFrame。 JFrame有一个名为setVisible()的方法。

https://docs.oracle.com/javase/7/docs/api/java/awt/Window.html#setVisible(boolean)

您可以在该按钮中使用setVisible(false),它应关闭第二个JFrame