我使用这段代码试图让我的项目(国际象棋游戏)中的JButton透明化,这样你就只能看到作品,而不是背景 . 它可以正常工作,但是当我将鼠标移到电路板上时按钮会自动复制 . 例如 . 如果我将鼠标放在带有棋子的棋子上,然后移动到一个带有骑士的棋子上,棋子就会出现在骑士身后 . 重新绘制框架可以摆脱它们,但即使我在鼠标移动时重新绘制,当我在棋盘上移动时它看起来仍然很奇怪 .
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);
}
1 回答
确保包含按钮的面板上的
setLayout(null)
. 然后,当您按下按钮setBounds()
时,请在面板上调用repaint()
.