Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关闭JFrame窗口?_Java_Jframe - Fatal编程技术网

Java 关闭JFrame窗口?

Java 关闭JFrame窗口?,java,jframe,Java,Jframe,我用了两帧。在第一帧中,我有一个按钮打开第二帧。在第二帧中还有一个按钮,但这个按钮用于关闭第二帧。但我不知道怎么做,我正在寻找一些帮助来解决这个问题 桂1 桂2 contentPane有一个名为remove(如果您想删除所有框架的话,则称为removeAll)的方法。contentPane.remove(这)可能会起作用。只需在侦听器中调用dispose(): public void actionPerformed(ActionEvent event){ if(event.getSour

我用了两帧。在第一帧中,我有一个按钮打开第二帧。在第二帧中还有一个按钮,但这个按钮用于关闭第二帧。但我不知道怎么做,我正在寻找一些帮助来解决这个问题

桂1

桂2


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();
    }