Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Jtree colorato

  1. #1

    Jtree colorato

    Ciao a tutti avrei bisogno di colorare dei nodi (quelli "sbagliati") di un jtree e non saprei da che punto iniziare... Per "colorare" intendo ke o la scritta sia rossa oppure il rettangolo del nodo... quello è uguale, voglio solo identificare visibilmente i nodi "sbagliati".
    Grazie per l aiuto
    Ciao!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Jtree colorato

    Originariamente inviato da Y.Malmsteen
    Ciao a tutti avrei bisogno di colorare dei nodi (quelli "sbagliati") di un jtree e non saprei da che punto iniziare... Per "colorare" intendo ke o la scritta sia rossa oppure il rettangolo del nodo... quello è uguale, voglio solo identificare visibilmente i nodi "sbagliati".
    Devi implementare un "tuo" tree cell renderer. Estendi DefaultTreeCellRenderer, nel getTreeCellRendererComponent() invochi quello "super", determina se deve essere rosso e in tal caso setta il colore sul componente (un DefaultTreeCellRenderer è un JLabel) e infine fallo ritornare dal metodo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie per l'aiuto... posto il codice nel caso servisse a qualk1...

    In questo esempio coloro i nodi con scritto "blue"
    (XTreeRenderer xTreeRenderer = new XTreeRenderer("blue")



    //Questa è la mia classe che estende DefaultTreeCellRenderer

    import java.awt.Color;
    import java.awt.Component;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultTreeCellRenderer;

    public class XTreeRenderer extends DefaultTreeCellRenderer {

    String textNodo;

    public XTreeRenderer(String text) {
    super();
    textNodo = text;
    }

    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {

    super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);

    if (leaf && value.toString().equals(textNodo)) {
    this.setForeground(Color.RED);


    }

    return this;
    }
    }

    //Questo lo scrivo nella classe dove è presente l albero che voglio colorare

    XTreeRenderer xTreeRenderer = new XTreeRenderer("blue");
    jTree1.setCellRenderer(xTreeRenderer);

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.