Avatar billede mianne67 Nybegynder
12. november 2001 - 12:29 Der er 1 løsning

Event på JTree

Hej

er der nogen der kan hjælpe mig jeg skal lave et jTree og i det skal jeg kunne lave events på nogle af af de nodes som træet består af hvordan gør man det?

knus

marianne
Avatar billede carstenknudsen Nybegynder
12. november 2001 - 21:07 #1
Her er et eksempel der sætter et JTree op
og udskriver når der trykkes på de enkelte
elementer i træet.

import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.util.Vector;
public class TreeDemo {
    public static void main( String[] args ) {
    Vector root = new Vector();
    root.add( \"First\" );
    root.add( \"Second\" );
    Vector subtree = new Vector();
    subtree.add( \"2.1\" );
    subtree.add( \"2.2\" );
    Vector subsubtree = new Vector();
    subsubtree.add( \"2.3.1\" );
    subsubtree.add( \"2.3.2\" );
    subtree.add( subsubtree );
    root.add( subtree );
    root.add( \"Third\" );
    JTree tree = new JTree( root );
    tree.addTreeSelectionListener( new MyTreeSelectionListener() );
    TreeModel model = new MyTreeModel( root );
    JScrollPane pane = new JScrollPane( tree );
    JFrame frame = new JFrame( \"Tree\" );
    Container c = frame.getContentPane();
    c.add( pane );
    frame.pack();
    frame.show();
    } // main
    public static class MyTreeModel implements TreeModel {
    private Vector root;
    public MyTreeModel( Vector root ) {
        this.root = root;
    } // constructor
    public Object getRoot() {
        return root;
    } // getRoot
    public boolean isLeaf( Object node ) {
        return ! (node instanceof Vector);
    } // isLeaf
    public int getChildCount( Object parent ) {
        return ((Vector)parent).size();
    } // getChildCount
    public Object getChild( Object parent, int i ) {
        return ((Vector)parent).get( i );
    } // getChild
    public int getIndexOfChild( Object parent, Object child ) {
        return ((Vector)parent).indexOf( child );
    } // getIndexOfChild
    public void valueForPathChanged( TreePath path, Object newValue ) {
        System.out.println(\"path=\"+path);
    } // valueForPathChanged
    public void addTreeModelListener( TreeModelListener listener ) {
    } // addTreeModelListener
    public void removeTreeModelListener( TreeModelListener listener ) {
    } // removeTreeModelListener
    } // MyTreeModel
    public static class MyTreeSelectionListener implements TreeSelectionListener {
    public void valueChanged( TreeSelectionEvent tse ) {
        TreePath path = tse.getPath();
        Object o = path.getLastPathComponent();
        System.out.println(\"o=\"+o);
    } // valueChanged
    } // TreeSelectionModel
} // TreeDemo
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester