0

我的程序中有两棵树。IAM使用JTREE的ClearSelection()方法在选择另一棵树中的某些东西时清除1树中的选择。主要代码是这样的:(在 valueChanged 事件侦听器中,树是触发当前选择的那个)

    if ( tree == tree1 ){

        tree2.clearSelection();

    } else {

        tree1.clearSelection();

    }

当我第一次选择时,它工作正常。但是,当我在此之后尝试从不同的树中进行选择时,似乎 valueChanged 方法被调用了两次。有什么解决办法吗?

4

2 回答 2

1

您是否使用了我在这个问题中给您的代码?

这包括一个标志来解决引入无限循环的问题,并且在处理当前选择事件时还应该忽略后续选择事件。

顺便说一句,鉴于这与上一个问题直接相关,您最好只对上一篇文章发表评论。这样,所有上下文都保存在一个地方。

于 2009-11-19T09:04:52.270 回答
0

clearSelection() 也会触发 valueChanged,因此您需要一种解决方法,添加一些标志并且当它为真时不要清除选择。

编辑。似乎使用一些标志很棘手。您可以改用 MouseListener 并在 mouseClicked 事件中运行相同的代码吗?

于 2009-11-19T05:18:24.573 回答