Java 关闭JFrame窗口?
我用了两帧。在第一帧中,我有一个按钮打开第二帧。在第二帧中还有一个按钮,但这个按钮用于关闭第二帧。但我不知道怎么做,我正在寻找一些帮助来解决这个问题 桂1 桂2Java 关闭JFrame窗口?,java,jframe,Java,Jframe,我用了两帧。在第一帧中,我有一个按钮打开第二帧。在第二帧中还有一个按钮,但这个按钮用于关闭第二帧。但我不知道怎么做,我正在寻找一些帮助来解决这个问题 桂1 桂2 contentPane有一个名为remove(如果您想删除所有框架的话,则称为removeAll)的方法。contentPane.remove(这)可能会起作用。只需在侦听器中调用dispose(): public void actionPerformed(ActionEvent event){ if(event.getSour
contentPane有一个名为remove(如果您想删除所有框架的话,则称为removeAll)的方法。contentPane.remove(这)可能会起作用。只需在侦听器中调用dispose():
public void actionPerformed(ActionEvent event){
if(event.getSource() == btn2)
{
dispose();
}
另外,通过单击X,这将处理窗口,因为您已经设置了
defaultclose操作符(dispose\u ON\u CLOSE)
您只调用方法dipose()
您需要在GUI2中引用您的GUI1实例。因此,可以在您的GUI2类中添加一个私有变量private GUI1 firstGUI
。然后编写一个setter方法
public void setGUI1(GUI1 myFirstGUI){
this.firstGUI=myFirstGUI;
}
然后您应该使用这个setter从外部设置GUI1变量
然后,您可以在btn2的actionPerformed方法中调用
firstGUI.dispose()
。他希望用按钮关闭同一帧,而不是“父”帧,因此此信息不正确。尽管如此,如果它想从GUI2内部关闭GUI1,这种方法还是有效的,谢谢您的帮助!(Det funkade!)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI2 extends JFrame implements ActionListener {
Container contentPane;
JButton btn2;
public GUI2()
{
setTitle("GUI 2");
setResizable(false);
setSize(400,200);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
btn2 = new JButton("Close GUI 2 frame");
contentPane.add(btn2);
btn2.addActionListener(this);
}
public void actionPerformed(ActionEvent event){
if(event.getSource() == btn2)
{
// Close GUI2 ??
}
}
}
public void actionPerformed(ActionEvent event){
if(event.getSource() == btn2)
{
dispose();
}