3

我正在尝试制作二十一点游戏,我想设计我的程序的方式是使用图形面板(图像、卡片绘制等),并在该面板顶部有一个带有按钮的 JPanel。我希望这个 JPanel 是透明的,这样下面的图形面板是可见的,但 JButtons 也不会变成透明的。

如果有人可以向我发送正确的方向?

图形层:

public class GraphicsBoard {
    String[] fileName = { "cards.png", "BlackJackBoard.png" };
    ClassLoader cl = GraphicsBoard.class.getClassLoader();
    URL imgURL[] = new URL[2];
    Toolkit tk = Toolkit.getDefaultToolkit();
    Image imgCards, imgBG;

    public GraphicsBoard() throws Exception {
        for (int x = 0; x < imgURL.length; x++)
            imgURL[x] = cl.getResource("pictures/" + fileName[x]);
        imgCards = tk.createImage(imgURL[0]);
        imgBG = tk.createImage(imgURL[1]);
    }

    public void paintComponent(Graphics g) {
        g.drawImage(imgBG, 0, 0, 550, 450, 0, 0, 551, 412, this);

        Graphics2D g2 = (Graphics2D) g;
        for (int x = 0; x <= 550; x += 50) {
            g2.drawLine(x, 0, x, 450);
            g2.drawString("" + x, x + 5, 20);
        }
        for (int y = 5; y <= 450; y += 50) {
            g2.drawLine(0, y, 550, y);
            g2.drawString(" " + y, 0, y + 20);
        }
    }
}

按钮层:

public class OverBoard extends JPanel implements ActionListener{
    JButton btnDeal = new JButton("Deal");

    public OverBoard(){
        btnDeal.addActionListener(this);
        add(btnDeal);
        setOpaque(false);
    }
}

我希望 ButtonLayer 位于 GraphicLayer 之上。

4

2 回答 2

3

我希望这个 JPanel 是透明的,这样下面的图形面板是可见的,但 JButtons 也不会变成透明的。

一个OverlayLayout JPanel会做你所描述的

于 2013-01-03T10:28:40.087 回答
2

有几种方法,适当的可能是

于 2013-01-03T08:59:46.500 回答