2011-10-19 54 views
1

我正在用Java编写GUI程序。使JSplitPane完全透明

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

+0

为了尽快提供更好的帮助,请发布[SSCCE](http://pscode.org/sscce.html)您最好的尝试(以便我们可以使用它并测试解决方案)。 –

回答

0

它取决于L & F. AquaL & MacOS上的F将遵守setOpaque(false),但是例如, Nimbus似乎并不关心它。要强制你需要重写它的调整JSplitPane

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

一个潜在缺点是这种方法覆盖将L & F表示该组件,因此要除掉另一个L &˚F主题化的元素UI定义透明分频器。

+0

几年前我问过这个问题,但你的方法可能有效。谢谢。 – sajad

2

您只需致电:setOpaque(boolean)

+0

我之前测试过但效果不好! – sajad

+0

+1,适合我。由于海报并未发布SSCCE,我想我们无法提供任何帮助。 – camickr