Java 将JPanel添加到图形面板,并使JPanel透明(对象除外)
我正在尝试制作一个21点游戏,我想要设计我的程序的方式是使用一个图形面板(图像、卡片绘制等),面板顶部是一个带有按钮的JPanel。我希望这个JPanel是透明的,这样下面的图形面板是可见的,但是JButtons也不会变成透明的 如果有人能把我送到正确的方向 图形层:Java 将JPanel添加到图形面板,并使JPanel透明(对象除外),java,swing,jpanel,transparency,java-2d,Java,Swing,Jpanel,Transparency,Java 2d,我正在尝试制作一个21点游戏,我想要设计我的程序的方式是使用一个图形面板(图像、卡片绘制等),面板顶部是一个带有按钮的JPanel。我希望这个JPanel是透明的,这样下面的图形面板是可见的,但是JButtons也不会变成透明的 如果有人能把我送到正确的方向 图形层: public class GraphicsBoard { String[] fileName = { "cards.png", "BlackJackBoard.png" }; ClassLoader cl = Gr
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);
}
}
}
我希望按钮层位于图形层的顶部。有几种方法,可以
- 使用,必须
或重新修补consume()
KeyEvents
一个JPanel。为了更快地获得更好的帮助,请发布一个。即使建议是正确的+1,我喜欢1)使用多个简短的…,2)添加API或代码示例的链接,否则此答案可能会被用户删除,无论是否被接受,是否被否决
public class OverBoard extends JPanel implements ActionListener{
JButton btnDeal = new JButton("Deal");
public OverBoard(){
btnDeal.addActionListener(this);
add(btnDeal);
setOpaque(false);
}
}