3

我见过几个类似的问题,但不幸的是其中包含的建议并没有完全为我完成。

总体目标:我有一个滑块,我想在一个主要显示可视化的窗口的左上角显示(这里是“显示”)。滑块应覆盖在没有任何背景的可视化顶部。

到目前为止,我有一个 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);

非常感谢!

4

1 回答 1

2

渲染滑块是组件的 UI 委托的职责,通常是BasicSliderUI. 如果需要,您可以替换您自己的实现,如此处所示。

图片

于 2012-07-07T01:50:34.793 回答