使 JLabel 不覆盖绘画

问题描述

我正在尝试制作国际象棋游戏,但是当我尝试通过 JLabel 图标插入棋子时,它们覆盖了实际的棋盘,因此只有棋子留在屏幕上。我如何让 JLabels 不掩盖它背后的绘画?我正在使用扩展 JApplet 的类来执行此操作。

更新:它通过使用 Applet 而不是 JApplet 来工作,但我仍然不知道为什么。

这是代码

ChessBoard board;   // done in another class file

public static int CEL_WIDTH = 65; 
public static int MARGIN_X = 50,MARGIN_Y = 50;   
    
imagePos = "../src/Schack/Bilder/";

JLabel label; 

public void init() {

    setLayout(null);

    this.setSize(600,600);
    
    board = new ChessBoard(MARGIN_X,MARGIN_Y,CEL_WIDTH);   
   
    ImageIcon imageIcon = new ImageIcon(getimage(getDocumentBase(),imagePos + "blackRook.png"));  //scaling  my image 
    Image image = imageIcon.getimage(); 
    Image newimg = image.getScaledInstance(CEL_WIDTH,CEL_WIDTH,java.awt.Image.SCALE_SMOOTH); 
    imageIcon = new ImageIcon(newimg);  

    label = new JLabel(imageIcon);
    label.setBounds(MARGIN_X,CEL_WIDTH);

    add(label);           
    
}

@Override
public void paint(Graphics g) {
    
    board.paintChessBoard(g);  // another paint method in a different class file 
    
    super.paint(g);
    
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)