Jtree TreeCellRenderer i zaznaczenie

0

Witam, robie nowego renderera do drzewka. Aktualnie jak poniżej.

class SimpleCellRenderer extends JLabel implements TreeCellRenderer {
    static Icon ICON_FOLDER = new ImageIcon("e:/folder.gif");
    static Icon ICON_FILE = new ImageIcon("e:/file.gif");

    public Component getTreeCellRendererComponent(JTree tree,Object value, boolean sel, boolean expanded, boolean leaf,int row, boolean hasFocus) {
        DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
        Object obj = node.getUserObject();
        String nodeName = obj.toString();
        setText(nodeName);  // set the text
        if(nodeName.contains("\\") | nodeName.contains(":")) setIcon(ICON_FOLDER);
        else setIcon(ICON_FILE);
         if(sel)
           System.out.println("Selected!");
         
        //customize it whatever you like
        return this;
     }
}

Ikonki wyświetlają się jak chcę, ale problem w tym, że jak klikam na nody to brakuje zaznaczenia (podświetlenia wybranego). Ktoś wie jak to zobić?

0

sam dobie odpowiem :-) nie wpadłbym na to ale trzeba tak:

  • w konstruktorze:
public SimpleCellRenderer(){
      setOpaque(true);
    }
  • w metodzie dodac:
if (sel){
             setForeground(tree.getBackground());
             setBackground(new Color(0,0,150));
           }  else {
             setBackground(tree.getBackground());
             setForeground(tree.getForeground());
           }

1 użytkowników online, w tym zalogowanych: 0, gości: 1