JFrame关闭问题

Slo*_*rry 1 java user-interface swing jpanel jframe

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

Hov*_*els 5

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

Window win = SwingUtilities.getWindowAncestor(myJPanel); 
win.dispose();
Run Code Online (Sandbox Code Playgroud)

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