【问题标题】:set transparent panel on top of canvas在画布顶部设置透明面板
【发布时间】:2012-07-20 23:26:36
【问题描述】:

我有一个画布,当鼠标进入它时,我希望在我的画布顶部显示一些包含一些组件的透明 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);

    }
}

如何在画布上显示透明面板,使其背景看起来像画布?

【问题讨论】:

    标签: java user-interface transparency jpanel


    【解决方案1】:

    我不明白这个问题,当我按原样运行代码时,导致按钮位于黑色背景上的红色方块顶部

    如果不适合您,请尝试将transparentPanel 背景颜色设置为红色(与canvasPanel 相同)

    虽然这可能不适用于非固体背景

    【讨论】:

      猜你喜欢
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      • 2020-04-09
      • 2011-05-26
      • 1970-01-01
      相关资源
      最近更新 更多