# JTree: ActionListener auf die Nodes



## Christian76 (31. Jan 2008)

Hallo,

langsam entwickelt sich der JTree zu meinem Lieblingsforumsthread. 

OK, ich habe Beispielsweise folgenden Code:


```
package tree; 
/* 
* TreeRendering.java 
*/ 
import java.awt.*; 
import javax.swing.*; 
import javax.swing.tree.*; 
public class TreeRendering extends JFrame { 
    private JTree tree; 
    private MyTreeRenderer renderer = new MyTreeRenderer(); 
    public TreeRendering() { 
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
        setSize(400, 300); 
        setLocationRelativeTo(null); 
        tree = new JTree(); 
        getContentPane().add(new JScrollPane(tree), java.awt.BorderLayout.CENTER); 
        tree.setCellRenderer(renderer); 
    } 
    public static void main(String args[]) { 
        EventQueue.invokeLater(new Runnable() { 
            public void run() { 
                new TreeRendering().setVisible(true); 
            } 
        }); 
    } 
} 
class MyTreeRenderer extends DefaultTreeCellRenderer { 
    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { 
        super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); 
        setForeground(Color.black); 
        if (value.toString().contains("p")) { 
            setForeground(Color.red); 
        } 
        return this; 
    } 
}
```


Sobald ich zu meinem JTree diesen DefaultTreeCellRenderer hinzugefügt habe ist erstmal die Möglichkeit des Auswählens weg.

In meinem JTree befinden sich diese DefaultMutableTreeNodes. Ich möchte diese Dinger via Doppelklick auswählen und dann damit was machen. Aber wie kann ich dazu einen Listener hinzufügen? 

Ich hoffe ihr könnt mir da helfen!

Gruß


----------



## Niki (31. Jan 2008)

Mann, Doku lesen! Da gibts sogar ein schönes Beispiel in der API Doc: MouseListener


----------



## Beni (31. Jan 2008)

Einen MouseListener dem JTree hinzufügen, und dort auf das Doppel-Klickevent warten (MouseEvent.getClickCount...). Mit JTree#getPathForLocation kannst du rausfinden, auf welchen Knoten der Benutzer geklickt hat.


----------



## Christian76 (31. Jan 2008)

jep, wunderbar dank euch!!!


----------

