最近在用swt做界面,但在用到树时,不知道应该如何给树的结点写事件响应
而swt中提供的只有adddisposeListener 和addListener两种响应
希望高手能够给予指点,应该怎么写树结点的响应事件

解决方案 »

  1.   

    用TreeViewer的addSelectionChangedListener(new ISelectionChangedListener())
      

  2.   

    你可以用下面这个监听,来实现树节点展开事件响应
    tree.addTreeListener(new TreeAdapter() {
    public void treeExpanded(TreeEvent e) {
    }
    });
      

  3.   

    private void createTree(Composite parent) {
    tree = new Tree(parent, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL
    | SWT.SINGLE);
    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 6;
    gd.heightHint = 90;
    tree.setLayoutData(gd); TreeItem item1 = new TreeItem(tree, SWT.NONE);
    item1.setText("Item1");
    TreeItem item2 = new TreeItem(tree, SWT.NONE);
    item2.setText("Item2");
    TreeItem item3 = new TreeItem(tree, SWT.NONE);
    item3.setText("Item3");
    TreeItem item4 = new TreeItem(tree, SWT.NONE);
    item4.setText("Item4");

    tree.addSelectionListener(new SelectionAdapter() {
    public void widgetSelected(SelectionEvent e) {
    TreeItem selectItem = tree.getSelection()[0];
    String text = selectItem.getText();
    //追加其他处理代码
    }
                            //追加其他事件的处理代码
    });
    }
    记得是给Tree加,不是给TreeItem加就可以
      

  4.   

    谢谢大家的回答,但我的swt中没有你们上面提到的
    addSelectionChangedListener(new ISelectionChangedListener())
    方法,没有
    tree.addTreeListener(new TreeAdapter() { 
    public void treeExpanded(TreeEvent e) { 

    });
    方法,也没有tree.addSelectionListener(new SelectionAdapter() 
    方法啊,这是怎么回事啊,是我的版本太低吗?
      

  5.   

    最新的swt api说明
    http://help.eclipse.org/stable/nftopic/org.eclipse.platform.doc.isv/reference/api/overview-summary.html应该是版本的问题,去下个新的贝!
      

  6.   

    呵呵,谢谢大家啊
    我在根里面找到了
    tree.addSelectionListener(new SelectionAdapter()  
    方法,但是其它两个方法还是没有
    不过仍然感谢大家啊