是否可以在ImageIcon中保持透明背景?

时间:2014-02-24 04:17:21

标签: java image swing transparency imageicon

我正在用Java制作国际象棋,我有一块黑白方块的JButton。基本上我的代码是这样的:

JButton[][] board = new JButton[8][8];
JPanel boardPanel = new JPanel();
boardPanel.setLayout(new GridLayout(8, 8));
for (row = 0; row < 8; row++) {
    for (col = 0; col < 8; col++) {
        board[row][col] = new JButton("");
        board[row][col].setBackground(new Color(70, 70, 70));
        boardPanel.add(board[row][col]);
    }
}

在按钮上我会有各自的棋子。我用透明背景创建它们,因此它们将显示在黑色或白色方块上。当我将它们添加到按钮时,透明度会因.jpg和.png格式而消失。我怎样才能解决这个问题?每张图片都采用以下格式:

ImageIcon whitePawn = new ImageIcon("whitePawn.jpg");

谢谢!

1 个答案:

答案 0 :(得分:1)

JPG不支持透明度。您可以使用正确的PNG文件。

有几种替代方法:

  1. 您可以为每件作品创建2张图片,例如whitePawnInWhiteCell.jpg和whitePawnInBlackCell.jpg并使用它们。

  2. 您可以为每件作品定义形状,然后在单元格上绘制图像之前应用适当的剪辑。