Сделайте JSplitPane полностью прозрачным - PullRequest
1 голос
/ 19 октября 2011

Я пишу программу с графическим интерфейсом на Java.

У меня есть JPanel с именем jpanel1, в который я вставил JSplitpane (jSplitPane1). Я установил правый и левый компоненты jSplitPane1; jpanel2 & jpanel3. Я установил фоновое изображение на нижней панели (jpanel1) и хочу, чтобы JSplitPane, а его правый и левый компоненты были прозрачными, чтобы на них можно было видеть фоновое изображение. Это возможно в Java? Если это возможно, могу ли я использовать этот метод для прозрачного JTree как JSplitpane?

Ответы [ 2 ]

2 голосов
/ 19 октября 2011

Вам просто нужно позвонить: setOpaque(boolean).

0 голосов
/ 03 сентября 2014

Это зависит от L & F. AquaL & F на MacOS будет учитывать setOpaque (false), но, например, Нимб, похоже, не заботится об этом. Чтобы принудительно установить прозрачный разделитель, необходимо переопределить его в определении пользовательского интерфейса JSplitPane

 jSplitPane.setUI(new BasicSplitPaneUI(){
            @Override
            public BasicSplitPaneDivider createDefaultDivider() {
                return new BasicSplitPaneDivider(this){
                    @Override
                    public void paint(Graphics g) {
                    }
                };
            }
        });

Потенциальным недостатком является то, что этот подход переопределяет L & F для этого компонента и, таким образом, может удалить другие элементы темы L & F.

...