我想为树组件创建节点侦听器。单击节点我想显示与节点相关的表单。 在搜索时,我发现bindNodeListener可用,但如何使用该方法
答案 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事件看起来像这样
节点扩展事件如下所示