JLabel随机不显示JFrame上的图像



好的,我正在编写一个程序来测试使用JLabels在JFrame上放置大量图像,这非常顺利,直到这个非常奇怪的错误发生,JFrame上完全随机的图像只是不显示,然而调整大小或将Frame移出屏幕并再次返回会使它们显示。我不知道是什么原因。

但是90%的情况是这样的

https://i.stack.imgur.com/WAinc.png

https://i.stack.imgur.com/soRhc.png

下面是我的代码:
public class JFrameTest extends JFrame{
int maxX=20;
int maxY=20;
int Coords[][];
ImageIcon wallImage = new ImageIcon(getClass().getResource("/Resources/Wall.png"));
ImageIcon floorImage = new ImageIcon(getClass().getResource("/Resources/floor.png"));
ImageIcon voidImage = new ImageIcon(getClass().getResource("/Resources/Void.png"));
JPanel Jpan=new JPanel();

public JFrameTest(){
    Coords = new int[maxY][maxX];
    setTitle("TestFrame");
    setResizable(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(1200,800);
    Jpan.setSize(1200, 800);
    add(Jpan);
    Jpan.setLayout(null);
    setVisible(true);
    for(int i =0; i<Coords.length;i++){
        for(int j =0; j<Coords[i].length; j++){
            if (Coords [i][j] == 0)
                drawWalls(i*64,j*64);
        }
    }
}
public void drawWalls(int x,int y){
    JLabel pic2 = new JLabel();
    pic2.setIcon(wallImage);
    Jpan.add(pic2);
    add(Jpan);
    pic2.setBounds(new Rectangle(new Point(y,x),pic2.getPreferredSize()));
    pic2.setVisible(true);
    setVisible(true);
}

}

有人知道这里发生了什么吗?

在结尾使用setVisible(true),在JLabel对象上调用setVisible()是没有意义的。只需在末尾使用update方法

Jpan.update();

相关内容

  • 没有找到相关文章

最新更新