使JSplitPane完全透明

时间:2011-10-19 10:50:37

标签: java swing transparency jtree jsplitpane

我正在用Java编写GUI程序。

我有一个名为JPanel的{​​{1}}我在其上插入了jpanel1JSplitpane)。我设置了jSplitPane1的左右组件; jSplitPane1& jpanel2。我在向下面板(jpanel3)上设置了背景图像,我想要jpanel1,它的左右组件是透明的,这样我就可以看到它们上的背景图像。这在Java中可行吗?如果可以,我可以使用该方法将JSplitPane透明为JTree吗?

2 个答案:

答案 0 :(得分:2)

您只需致电:setOpaque(boolean)

答案 1 :(得分:0)

这取决于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主题元素。