Mam obiekt "drzewo" klasy JTree. Każdym z liści są obiekty klasy Kategoria:

public class Kategoria {
    private String nazwa;
    private int id;
    
    public Kategoria(String nazwa, int id){
    this.nazwa = nazwa;
    this.id = id;
    System.out.println("konstruktor Kategoria");

    } 
    public String getNazwa(){
        return this.nazwa;
    }
    public int getid(){
        return this.id;
    }
    
    @Override
    
    public String toString() { return (String)nazwa; }
}

jak widać są tam właściwości nazwa i id.

Pytanie: czy jest metoda na wyciągnięcie właściwości id z obiektu wybranego z drzewa.

Jak widać do klasy Kategoria dodałem metodę getid() - myślałem w swojej naiwności, że pojawi sie jako metoda w getLastPathComponent() ale niestety nie zadziałało:

private void drzewoValueChanged(javax.swing.event.TreeSelectionEvent evt) {
   textField.setText(drzewo.getSelectionPath().getLastPathComponent().getid());
}

oczywiście wzorowałem się na nadpisanej metodzie toString().

Jak wydostać tę właściwość ?

Ok Już wiem.

public void valueChanged(TreeSelectionEvent e) {
//Returns the last path element of the selection.
//This method is useful only when the selection model allows a single selection.
    DefaultMutableTreeNode node = (DefaultMutableTreeNode)
                       tree.getLastSelectedPathComponent();

    if (node == null)
    //Nothing is selected.	
    return;

    Object nodeInfo = node.getUserObject();
    if (node.isLeaf()) {
        BookInfo book = (BookInfo)nodeInfo;
        displayURL(book.bookURL);
    } else {
        displayURL(helpURL); 
    }
}