2011-10-19 129 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