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);
}
}