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

用户名

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

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

public void FightFrame(String offensemsg){      

    JFrame frame = new JFrame("BattleView: ");
    frame.setLayout(new BorderLayout());
    FightScene sc = new FightScene();       
    frame.add(sc);
    frame.setVisible(true);
    frame.setSize(652, 480);
    frame.setLocationRelativeTo(null);
    frame.setResizable(false);
    sc.GenerateScene(offensemsg);
}

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

      public void checkCollisions() {
           for (int i = 0; i < defense.size(); i++) {
                FriendlyEntity m = (FriendlyEntity) defense.get(i);    
                Rectangle r1 = m.getBounds();    
                for (int j = 0; j<offense.size(); j++) {
                    Enemy a = (Enemy) offense.get(j);
                    Rectangle r2 = a.getBounds();    
                    if (r1.intersects(r2)) {
                        m.setHealth(-1);
                        a.setHealth(-1);
                        if(a.getHealth()==0){
                        a.setVisible(false);
                        } else if(m.getHealth()==0){
                            m.setVisible(false);
                            }                       
                }}
           }               
           if(defense.size()==0){                   
                System.out.println("You have lost the battle\n");
                //############ How can I exit the FightFrame from here?
            }else if (offense.size()==0){
                System.out.println("You have won the battle\n");
            //############# How can I exit the FightFrame from here?                    
            }
        }
大卫·克鲁克(David Kroukamp)

设定JFrame#setDefaultCloseOperationJFrame.DISPOSE_ON_CLOSE

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

更新:

我了解但如何触发此枯竭FightScene()(这是一个JPanel)?

通过构造设置器将的实例传递JFrameJPanel

或者

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

JFrame frame = (JFrame) SwingUtilities.getWindowAncestor(this);
frame.dispose();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在不退出应用程序的情况下断开会话

来自分类Dev

Java:在不退出应用程序的情况下将图像保存到文件目录

来自分类Dev

如何在不退出程序的情况下退出bash中的if语句?

来自分类Dev

如何在不退出的情况下多次运行此程序?

来自分类Dev

如何在关闭应用程序的情况下使对象保持活动状态

来自分类Dev

Emacs内部的Emacs:如何在不退出主Emacs的情况下退出内部Emacs

来自分类Dev

Ubuntu如何在Windows无法关闭的情况下更新运行中的应用程序而不必关闭它们?

来自分类Dev

Mac上的Pyinstaller:如何在不先打开终端的情况下打开应用程序?

来自分类Dev

在不退出应用的情况下展示广告

来自分类Dev

如何在Racket中没有框架的[x]按钮的情况下从GUI应用程序退出

来自分类Dev

如何在Racket中没有框架的[x]按钮的情况下从GUI应用程序退出

来自分类Dev

在不退出VIM的情况下中断当前程序

来自分类Dev

在不退出程序的情况下重置Windows窗体

来自分类Dev

macCatalyst应用程序:如何在不终止应用程序的情况下关闭窗口?

来自分类Dev

如何强制Windows 10程序在不退出的情况下适应文本大小的变化?

来自分类Dev

Titanium Properties getString说:null,如何在不关闭应用程序的情况下显示该值?

来自分类Dev

如何在不退出现有循环的情况下安排任务?

来自分类Dev

如何在不退出R的情况下从终端执行R一线?

来自分类Dev

如何在不退出当前OS会话的情况下启动chroot?

来自分类Dev

如何在不退出脚本本身的情况下取消脚本中的命令?

来自分类Dev

如何在不退出icewm的情况下更新工作空间名称?

来自分类Dev

如何在不关闭终端的情况下退出SimpleHTTPServer?

来自分类Dev

如何在不退出程序的情况下在do-while循环中添加if语句?

来自分类Dev

如何在不退出循环的情况下处理异常?

来自分类Dev

在关闭/最小化应用程序的情况下,如何停止MediaPlayer的声音?

来自分类Dev

如何在不触发事件的情况下打开/关闭引导程序模式?

来自分类Dev

如何在没有GUI的情况下运行GUI应用程序(GUI应用程序作为无头服务器上的守护程序)?

来自分类Dev

如何在客户端系统上不安装xampp的情况下运行php应用程序?

来自分类Dev

如何在不使用VHOST的情况下通过80端口在Dokku上运行应用程序?

Related 相关文章

  1. 1

    在不退出应用程序的情况下断开会话

  2. 2

    Java:在不退出应用程序的情况下将图像保存到文件目录

  3. 3

    如何在不退出程序的情况下退出bash中的if语句?

  4. 4

    如何在不退出的情况下多次运行此程序?

  5. 5

    如何在关闭应用程序的情况下使对象保持活动状态

  6. 6

    Emacs内部的Emacs:如何在不退出主Emacs的情况下退出内部Emacs

  7. 7

    Ubuntu如何在Windows无法关闭的情况下更新运行中的应用程序而不必关闭它们?

  8. 8

    Mac上的Pyinstaller:如何在不先打开终端的情况下打开应用程序?

  9. 9

    在不退出应用的情况下展示广告

  10. 10

    如何在Racket中没有框架的[x]按钮的情况下从GUI应用程序退出

  11. 11

    如何在Racket中没有框架的[x]按钮的情况下从GUI应用程序退出

  12. 12

    在不退出VIM的情况下中断当前程序

  13. 13

    在不退出程序的情况下重置Windows窗体

  14. 14

    macCatalyst应用程序:如何在不终止应用程序的情况下关闭窗口?

  15. 15

    如何强制Windows 10程序在不退出的情况下适应文本大小的变化?

  16. 16

    Titanium Properties getString说:null,如何在不关闭应用程序的情况下显示该值?

  17. 17

    如何在不退出现有循环的情况下安排任务?

  18. 18

    如何在不退出R的情况下从终端执行R一线?

  19. 19

    如何在不退出当前OS会话的情况下启动chroot?

  20. 20

    如何在不退出脚本本身的情况下取消脚本中的命令?

  21. 21

    如何在不退出icewm的情况下更新工作空间名称?

  22. 22

    如何在不关闭终端的情况下退出SimpleHTTPServer?

  23. 23

    如何在不退出程序的情况下在do-while循环中添加if语句?

  24. 24

    如何在不退出循环的情况下处理异常?

  25. 25

    在关闭/最小化应用程序的情况下,如何停止MediaPlayer的声音?

  26. 26

    如何在不触发事件的情况下打开/关闭引导程序模式?

  27. 27

    如何在没有GUI的情况下运行GUI应用程序(GUI应用程序作为无头服务器上的守护程序)?

  28. 28

    如何在客户端系统上不安装xampp的情况下运行php应用程序?

  29. 29

    如何在不使用VHOST的情况下通过80端口在Dokku上运行应用程序?

热门标签

归档