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