Java 如何在不退出应用程序的情况下关闭基于JPanel上事件的特定JFrame?

Java 如何在不退出应用程序的情况下关闭基于JPanel上事件的特定JFrame?,java,swing,jframe,jpanel,multiple-instances,Java,Swing,Jframe,Jpanel,Multiple Instances,如何在不退出整个应用程序的情况下,基于特定帧内JPanel上的模拟退出特定帧 在我的主类中,我有一个Frame()方法 在我的FightScene类中,我绘制了一个FightScene,该类还有checkCollision()方法 public void checkCollisions(){ 对于(int i=0;i

如何在不退出整个应用程序的情况下,基于特定帧内JPanel上的模拟退出特定帧

在我的主类中,我有一个Frame()方法

在我的FightScene类中,我绘制了一个FightScene,该类还有checkCollision()方法

public void checkCollisions(){
对于(int i=0;i
现在要关闭框架,只需执行以下操作:

frame.dispose();//close the `JFrame` instance
更新:

我明白,但我如何使用
fightsecene()
(这是 a(JPanel)

通过构造函数或setter将
JFrame
的实例传递给
JPanel

如果不想在
JPanel
类/方法中使用实例,请执行以下操作:

JFrame frame = (JFrame) SwingUtilities.getWindowAncestor(this);
frame.dispose();
((Frame)FightScene.this.GetToLevel()).dispose();
//FightScene是JPanel

没有定义有关的内容,那么HIDE_ON_CLOSE是默认的关闭操作==setVisible(false),我不会在关闭或添加WindowListener时做任何可以防止…的事情。谢谢,这正是我想要的。非常感谢appreciated@user2556304那么,您使用的是计时器还是线程?如果是,则必须停止,否则它将继续,或者让线程/计时器成为观察者,即它查看
JFrame
是否可见当然,现在您必须确保
JFrame
在计时器启动时可见…比传递帧的实例更干净:
gettoplevelancer().setVisible(false)你的心理Bro,我忘记了关于TimeRee的欢迎,欢迎加入StAdvExcel。考虑添加更多的解释。
JFrame frame=new JFrame();//create frame

//so when we exit or dispose of Jframe it doesnt exit the entire app
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

...

frame.pack();
frame.setVisible(true);
frame.dispose();//close the `JFrame` instance
JFrame frame = (JFrame) SwingUtilities.getWindowAncestor(this);
frame.dispose();