3

私はブラックジャックゲームを作ろうとしています。プログラムをデザインしたいのは、グラフィックパネル(画像、カードの描画など)と、そのパネルの上にボタンのあるJPanelを使用することです。このJPanelを透明にして、下のグラフィックパネルが表示されるようにしますが、JButtonも透明になりません。

誰かが私を正しい方向に送ることができたら?

グラフィックレイヤー:

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 を透明にして、下のグラフィックパネルが表示されるようにしますが、JButton も透明にならないようにします。

OverlayLayout JPanelは、あなたが説明したことを行います。

于 2013-01-03T10:28:40.087 に答える
2

いくつかの方法があります。

于 2013-01-03T08:59:46.500 に答える