如何关闭 Jpanel 窗口?

问题描述

我想要做的是使用 Java 图形运行模拟,并且我正在循环一堆 jpanels。一旦在模拟中满足条件,我希望该特定 jpanel 关闭。但是,我不知道该怎么做。目前我已经尝试使用 System.exit(0) 但我希望其他 jpanels 继续运行。下面是我的 Pong 类代码和我使用的条件。条件位于棋盘类中,我也有球类和墙类。(这个问题与乒乓球无关,我使用一些旧代码来运行模拟)

 package Pong2;
        import javax.swing.*;
        import java.util.*;
        public class Pong2 extends JFrame {
            static int a;
            static int b;
            public  Pong2(int a,int b)
            {
                this.a=a;
                this.b=b;
                add(new Board2(a,b));
                setDefaultCloSEOperation(EXIT_ON_CLOSE);
                setSize(1000,1000);
                setLocationRelativeto(null);
                setVisible(true);
                setResizable(false);
            }
            public static void main(String[] args) {
               int[] primes=new int[]{2,3,5,7,11,13,17,19,23,29};
             for (int i = 0; i <primes.length ; i++) {
                   for (int j = i+1; j <primes.length ; j++) {
                        Pong2 e=new Pong2(primes[i]*100,primes[j]*100);
                   }
             }
            }
        }

板类

 if(ball.intersects(0,5)){
                    ball.stop();
                    System.out.println("Top left"+a/100+" "+b/100);
                    setVisible(false);
                    System.exit(0);
                }

解决方法

如果您想关闭 JPanel 并且只关闭 JPanel,请执行

yourFrame.remove(yourPanel);

如果你想用它删除整个框架,做

yourFrame.dispose();