Я видел несколько подобных вопросов, но, к сожалению, содержащиеся в них предложения не совсем помогли мне.
Общая цель: у меня есть ползунок, который я хочу отобразить в верхнем левом углу окна, которое в основном отображает визуализацию (здесь «отображение»). Ползунок должен накладываться поверх визуализации без фона.
Пока что у меня есть 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);
Большое спасибо!