2012-01-19 2 views
1

J'essaie de définir la couleur d'arrière-plan pour le diviseur JSplitPane. J'ai écrit le code suivant, mais cela ne semble pas fonctionner.Comment changer la couleur ou la couleur de fond de JSplitPane divider?

 BasicSplitPaneUI ui = (BasicSplitPaneUI) splitPane.getUI(); 
     BasicSplitPaneDivider divider = ui.getDivider(); 
     divider.setBackground(Color.decode("#FFFACD")); 

J'ai même essayé la suggestion donnée ici How to set BackGround color to a divider in JSplitPane

Quelqu'un peut-il s'il vous plaît signaler l'erreur ou me faire connaître toute autre approche?

Répondre

2

Cela fonctionne pour moi

BasicSplitPaneDivider divider = (BasicSplitPaneDivider) splitPane.getComponent(2); 
divider.setBackground(Color.black); 
divider.setBorder(null); 
+2

Vous devez prendre l'apparence en considération. Le code ci-dessus ne fonctionne pas pour mon application Metal Look and Feel. – coolcfan

3

J'ai cherché pour beaucoup après pour changer la couleur de séparation du volet divisé. Et j'ai trouvé la solution pour cela.

splitPane.setUI(new BasicSplitPaneUI() { 
      public BasicSplitPaneDivider createDefaultDivider() { 
      return new BasicSplitPaneDivider(this) { 
       public void setBorder(Border b) { 
       } 

       @Override 
        public void paint(Graphics g) { 
        g.setColor(Color.grey); 
        g.fillRect(0, 0, getSize().width, getSize().height); 
         super.paint(g); 
        } 
      }; 
      } 
     }); 
     splitPane.setBorder(null); 

Avec le code ci-dessus, nous pouvons définir la couleur, fixer la frontière pour le diviseur too.For plus d'informations, reportez-vous cette tutorial