Java 退出Jframe窗口时出错
我有一个Jframe类的窗口,它包含一个按钮。单击该按钮,将打开Jframe类的第二个窗口。单击第二个窗口的关闭或退出按钮后,第一个窗口也将与第二个窗口一起关闭。 为什么会这样 下面是我的代码: //这是我的第一份文件Java 退出Jframe窗口时出错,java,swing,jframe,Java,Swing,Jframe,我有一个Jframe类的窗口,它包含一个按钮。单击该按钮,将打开Jframe类的第二个窗口。单击第二个窗口的关闭或退出按钮后,第一个窗口也将与第二个窗口一起关闭。 为什么会这样 下面是我的代码: //这是我的第一份文件 class Frame1 extends JFrame { Frame1() { super("hello this is window 1"); setVisible(true); setSize(400,400);
class Frame1 extends JFrame
{
Frame1()
{
super("hello this is window 1");
setVisible(true);
setSize(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
JButton btn = new JButton("open second window");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("button clicked");
Frame2 obj2 = new Frame2();
}
});
add(btn);
}
public static void main(String args[])
{
Frame1 obj = new Frame1();
}
}
// this is my second file
class Frame2 extends JFrame
{
Frame2()
{
super("hello this is window 2");
setVisible(true);
setSize(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
}
}
尝试更改退出程序的默认关闭事件,然后显式关闭该JFrame
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
一些可能有帮助的链接:
尝试更改退出程序的默认关闭事件,然后显式关闭该JFrame
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
一些可能有帮助的链接:
将setDefaultCloseOperation参数的值更改为JFrame.DO\u NOTHING\u ON\u CLOSE可防止第二帧关闭第一帧将setDefaultCloseOperation参数的值更改为JFrame.DO\u NOTHING\u ON\u CLOSE可防止第二帧关闭第一帧尝试在第二帧,然后处理它,类似于:
frame2.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent windowEvent) {
frame2.dispose();
}
});
OR
frame2.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
但请注意,在您的应用程序中使用多个JFrame不是一个好做法,请使用一个JFrame和多个对话框。尝试在第二个框架中添加窗口侦听器,然后将其丢弃,例如:
frame2.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent windowEvent) {
frame2.dispose();
}
});
OR
frame2.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
但请注意,在您的应用程序中使用多个JFrame不是一个好做法,请使用一个JFrame和多个对话框。从Frame2类中删除这一行 然后将其添加到同一行:
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
从Frame2类中删除此行 然后将其添加到同一行:
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
你的密码在哪里?告诉我们,问题是什么,错误是什么?当我点击一个窗口的退出按钮时,第二个窗口也会退出一个窗口。我没有退出的代码。这是自动完成的。我不知道发生这种情况的原因是什么?@SarthakShah:没有看到产生问题的代码,很难尝试确定问题是什么。请把有问题的代码贴出来。你的代码在哪里?告诉我们,问题是什么,错误是什么?当我点击一个窗口的退出按钮时,第二个窗口也会退出一个窗口。我没有退出的代码。这是自动完成的。我不知道发生这种情况的原因是什么?@SarthakShah:没有看到产生问题的代码,很难尝试确定问题是什么。请把有问题的代码贴出来。