Axel Richter: JTree - Backgroundimage

Beitrag lesen

Hallo,

In dem Code oben erscheint das Bild ueberhaupt nicht. Verschiebe
ich jedoch die Zeile super..() an den Anfang der Methode so
wird es glueckligerweise angezeigt. JEdoch ueberlappt es dann
den anzuzeigenden Inhalt, so dass er sich dann "hinter" dem
Hintergrundbild versteckt (teilweise, da transparent).

Wie kann ich dieses Problem loesen? Kann mir von euch evtl.
einer dabei weiterhelfen?

Mein Lösungsvorschlag:
Lege das Hintergrundbild in ein JComponent, welches keine anderen Aufgaben hat, als Container für den JTree zu sein. Ein JPanel würde sich anbieten. Dann sorge dafür, dass der JTree einen transparenten Hintergrund hat. Den hat er, je nach UI-Look&Feel, nicht immer. Für den gesamten JTree hilft:

  
tree.setOpaque(false);  

Für die TreeCells hilft das nicht. Google-Recherchen zeigten mir, dass es wohl problematisch ist, die TreeCells, also die Beschriftungen der Zweige, transparent zu bekommen. Unter Windows habe ich es schließlich mit:

  
DefaultTreeCellRenderer dtcr = new DefaultTreeCellRenderer() {  
  public Color getBackgroundNonSelectionColor() {  
     return new Color(0,0,0,0);  
  }  
};  
tree.setCellRenderer(dtcr);  

geschafft.

viele Grüße

Axel