我有Main类,StartFrame扩展了JFrame,而UserPanel扩展了我添加到StartFrame的JPanel。我在UserPanel中有一个按钮,按下按钮时如何关闭StartFrame(我熟悉事件处理,所以这不是问题,它是如何将信息发送到StartFrame的)。或者最好只是更改框架的面板(如果需要,可以调整大小)并重新使用它?
最佳答案
如果要关闭包含组件的窗口,则需要对该窗口的引用,并且SwingUtilities具有可以帮助您实现此目的的方法:getWindowAncestor(Component c)
。然后,您可以在返回的窗口中调用dispose()
。
即
Window win = SwingUtilities.getWindowAncestor(myJPanel);
win.dispose();
请注意,如果您使用它来结束GUI,这很好,但是如果您的目标是交换视图,那么更好的建议是不要交换Windows,而要使主JFrame可见,而要交换显示的组件与CardLayout。