我见过几个类似的问题,但不幸的是其中包含的建议并没有完全为我完成。
总体目标:我有一个滑块,我想在一个主要显示可视化的窗口的左上角显示(这里是“显示”)。滑块应覆盖在没有任何背景的可视化顶部。
到目前为止,我有一个 JPanel,在 JLayeredPane 的可视化上方的图层上包含我的滑块。问题是,尽管调用了 setOpaque 和/或 setBackground(new Color(0,0,0,0)),但 JPanel 的背景(包括滑块)显示为灰色。我正在使用 Nimbus LAF。
最初,我使用了 Absolute Layout,它以非常优雅的方式完成了几乎所有事情,并且代码最少。那里的问题是可视化没有随窗口自动调整大小(但如果有一种干净的方法可以使可视化随窗口调整大小,我愿意接受这种方法)。
JPanel sliderPane = new JPanel();
sliderPane.setLayout(new BoxLayout(sliderPane, BoxLayout.X_AXIS));
sliderPane.add(zoomSlider);
zoomSlider.setMaximumSize(new Dimension (60, 150));
sliderPane.add(Box.createHorizontalGlue());
sliderPane.setBackground(new Color(0,0,0,0));
JLayeredPane graphPane = new JLayeredPane();
graphPane.setPreferredSize(new Dimension(1000, 800));
graphPane.setLayout(new BoxLayout(graphPane, BoxLayout.Y_AXIS));
graphPane.add(sliderPane, new Integer(1));
graphPane.add(display, new Integer(0));
graphPane.setOpaque(false);
非常感谢!