在树中为节点添加动作侦听器

时间:2011-08-11 08:50:36

标签: java swing events user-interface jtree

我无法将动作侦听器添加到树中的特定节点。这是我构建的一棵树:

enter image description here

我想为每个节点注册一个单独的侦听器。现在我在JTree注册了一个听众。所以,每当我点击tree的任何部分时,监听器方法就会启动它的工作。 (即现在我有一个共同的倾听者) 我想要的是当我点击音频一个注册听到音频点击的听众时,应该开始它的工作,同样适用于视频。 我该怎么做?

到目前为止,这是我的注册方式:

jTree1.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
        public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
            jTree1ValueChanged(evt);
        }
    });
public void jTree1ValueChanged( TreeSelectionEvent tse ) {...}

2 个答案:

答案 0 :(得分:7)

这个怎么样?或者你有特殊的PathComponents吗?

public void jTree1ValueChanged( TreeSelectionEvent tse ) {
     String node = tse.getNewLeadSelectionPath().getLastPathComponent().toString();
    if( node.equals("audio") ) {
        // play audio
    } else if( node.equals("video") ) {
       // play video
    }
}

答案 1 :(得分:0)

您无法向树节点添加事件侦听器,因为表示树节点的类不是Component。