Java 使JButtons透明

Java 使JButtons透明,java,swing,jbutton,Java,Swing,Jbutton,我使用这段代码试图使我的项目(国际象棋游戏)中的JButtons透明,这样您只能看到片段而不能看到背景。它可以工作,但当我将鼠标移到黑板上时,按钮会自动复制。例如,如果我将鼠标放在一块有棋子的棋子上,然后移动到一块有骑士的棋子上,则棋子将出现在骑士后面。重新绘制框架可以消除它们,但即使我在鼠标移动时重新绘制,当我在电路板上移动时,它仍然看起来很奇怪 public class Pawn extends JButton(){ Pawn(x, y){ this.setIcon(new Imag

我使用这段代码试图使我的项目(国际象棋游戏)中的JButtons透明,这样您只能看到片段而不能看到背景。它可以工作,但当我将鼠标移到黑板上时,按钮会自动复制。例如,如果我将鼠标放在一块有棋子的棋子上,然后移动到一块有骑士的棋子上,则棋子将出现在骑士后面。重新绘制框架可以消除它们,但即使我在鼠标移动时重新绘制,当我在电路板上移动时,它仍然看起来很奇怪

public class Pawn extends JButton(){

Pawn(x, y){
   this.setIcon(new ImageIcon("pawn"));
   this.setBounds(x, y, 100, 100);
   this.makeClear();
}

public void makeClear(){
    this.setOpaque(false);
    this.setContentAreaFilled(false);
    this.setBorderPainted(false);
}

确保在包含按钮的面板上设置布局(null)。然后,当您在按钮上执行
setBounds()
时,请调用面板上的
repaint()

请参阅下面的m解决方案,并告诉我它是否有效。我们没有足够的信息。发布一篇演示问题的文章。请参阅。“确保
setLayout(null)
”确保不调用
setLayout(null)
!Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作。因此,它们不利于像素完美布局。而是使用布局管理器,或与布局填充和边框一起使用。