JFrame关闭问题

时间:2012-12-09 20:32:14

标签: java swing user-interface jframe jpanel

我有Main类,StartFrame扩展了JFrame,UserPanel扩展了我添加到StartFrame的JPanel。我在UserPanel中有按钮,当我按下按钮时如何关闭StartFrame(我熟悉事件处理它不是问题,问题是如何将信息发送到StartFrame)。或者最好只更改框架的面板(如果需要,可以重复使用)并重复使用它?

2 个答案:

答案 0 :(得分:5)

如果要关闭包含组件的窗口,则需要对该窗口的引用,而SwingUtilities有一个方法可以帮助您实现此目的:getWindowAncestor(Component c)。然后你可以在返回的窗口上调用dispose()

即,

Window win = SwingUtilities.getWindowAncestor(myJPanel); 
win.dispose();

请注意,如果你使用它来结束你的GUI,这很好,但如果你的目标是交换视图,那么更好的建议不是交换Windows,而是让主JFrame可见但是交换它使用CardLayout显示的组件。

答案 1 :(得分:1)

按钮已在画面上(右上角,此处)。只需在构建它时调用JFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE),它就会按照用户的期望工作。

其他提示

不要扩展框架或面板,而只是创建和使用它们。

相关问题