我有一个画布,我希望当鼠标进入它时,一些透明的Jpanel包含一些显示在我画布上的组件。我为此使用了JlayeredPane;但正如您在下面的示例中所示,当我想在画布顶部显示透明面板时,通过将其添加到上层的jLayeredPane,它的背景显示为画布下面板的颜色。
public class NewClass {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(200 , 200);
JLayeredPane layeredPane = new JLayeredPane();
frame.setContentPane(layeredPane);
JPanel canvasPanel = new JPanel();
canvasPanel.setLayout(new GridLayout());
canvasPanel.setBackground(Color.RED);
Canvas canvas = new Canvas();
canvas.setBackground(Color.BLACK);
canvasPanel.add(canvas);
layeredPane.add(canvasPanel , JLayeredPane.PALETTE_LAYER);
canvasPanel.setSize(200 , 200);
JPanel transparentPanel = new JPanel();
transparentPanel.setSize(100 , 100);
transparentPanel .setOpaque(false);
transparentPanel.add(new JButton("button"));
layeredPane.add(transparentPanel , JLayeredPane.DRAG_LAYER);
frame.setVisible(true);
}
}
如何在画布上显示透明面板,它的背景看起来像帆布?
答案 0 :(得分:0)
我不明白这个问题,当我运行代码时,它导致黑色背景上的红色方块顶部的按钮
如果不适合您,请尝试将transparentPanel
背景颜色设置为红色(与canvasPanel
相同)
虽然这可能不适用于非固体背景