使JSplitPane完全透明



我正在用Java编写GUI程序。

我有一个叫做jpanel1JPanel,我在它上面插入了一个JSplitpane (jSplitPane1)。我设置了jSplitPane1的左右分量;jpanel2,jpanel3。我在向下面板(jpanel1)上设置了一个背景图像,我想要JSplitPane,它的右组件和左组件是透明的,这样我就可以看到它们的背景图像。这在Java中可能吗?如果这是可能的,我可以使用该方法透明JTree作为JSplitpane吗?

您只需调用:setOpaque(boolean)

这取决于L&F。MacOS上的AquaL&F将尊重setOpaque(false),但例如Nimbus似乎并不关心它。要强制使用透明分隔符,您需要在JSplitPane

的UI定义中重写它。
 jSplitPane.setUI(new BasicSplitPaneUI(){
            @Override
            public BasicSplitPaneDivider createDefaultDivider() {
                return new BasicSplitPaneDivider(this){
                    @Override
                    public void paint(Graphics g) {
                    }
                };
            }
        });
一个潜在的缺点是,这种方法覆盖了该组件的L&F,因此可能会移除其他的L&F主题元素。

相关内容

  • 没有找到相关文章

最新更新