将一个JPanel添加到Graphics Panel中,并使JPanel除了对象之外都是透明的

3
我正在尝试制作一个二十一点游戏,希望采用图形面板(包括图片、卡牌绘画等)设计程序,并在该面板上方加一个JPanel 按钮面板。我希望这个JPanel是透明的,以便下面的图形面板可见,但按钮不会变为透明。
如果有人能指导我正确的方向吗?
图形层:
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);
    }
}

我希望按钮层处于图形层的顶部。


1
为了更快地获得更好的帮助,请发布一个SSCCE - Andrew Thompson
2个回答

3

即使建议正确,我也喜欢非常短的答案必须 1)使用多个简短的...,2)添加API链接或代码示例,否则此答案可能会被用户删除,无论是否被接受、赞成或反对。 - mKorbel

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接