TreeNode上的EventListener代号为1

时间:2017-06-21 07:00:10

标签: java codenameone

我想为树组件创建节点侦听器。单击节点我想显示与节点相关的表单。 在搜索时,我发现bindNodeListener可用,但如何使用该方法

1 个答案:

答案 0 :(得分:0)

该方法是回调而不是监听器。它意味着人们对树进行子类化。您可以使用可以手动绑定到节点的侦听器绑定到叶子,并替换该节点的整个功能...

Form current = new Form("Tree", new BorderLayout());

Tree t = new Tree() {

    @Override
    protected Component createNode(Object node, int depth) {
        Component c = super.createNode(node, depth);
        if(!getModel().isLeaf(node) && c instanceof Button) {
            Button b = (Button)c;
            b.addActionListener(e -> ToastBar.showMessage("You expanded: " + node, FontImage.MATERIAL_INFO));
        }
        return c;
    }

};
current.add(CENTER, t);
t.addLeafListener(e -> ToastBar.showMessage("You clicked: " + e.getSource(), FontImage.MATERIAL_INFO));

current.show();        

Leaf事件看起来像这样

Leaf event

节点扩展事件如下所示

Node expansion