1

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

4

2 回答 2

5

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

IE,

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

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

于 2012-12-09T20:34:47.800 回答
1

该按钮已经在框架上(在右上角,这里)。只需JFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)在构建时调用它,它就会按用户期望的那样工作。

其他提示

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

于 2012-12-10T01:43:05.080 回答