覆盖valueChanged方法,在里面进行你的判断
这个方法是当选择的项发生变化时发生,对鼠标和键盘均有效 对JList
myList.addListSelectionListener(new ListSelectionListener(){
      public void valueChanged(ListSelectionEvent e){
        ////
      }
}对JTree,同理
addTreeSelectionListener(new TreeSelectionListener(){
      public void valueChanged(TreeSelectionEvent e)
      {
        //??????????????      }
    });

解决方案 »

  1.   

    NO,不是这个样子的
    选择节点1时候,有一个列表显示出它所对应的信息,并且用户可以更改
    选择节点2时候,也作相应的显示,但是在显示之前发现用户对1的修改没有改变,于是提示是否中断对1的改变,是:显示2的内容;否:忽略对2的选择,保持原来的不变!
    而valueChanged是已经把2选择上了才触发的。我是想在用户选了2但是树图上的反显还没有改变的时候触发
      

  2.   

    我查到这个方法:
    public  void  ValueChanged(TreeSelectionEvent  evt)  {  
       if(取消标志==true)  {  
           取消标志=false;  
           return;  
       }  
       if(修改状态==true){  
             if(弹出“是”“否”“取消”对话框==是)  
                     //将当前修改的数据保存  
             else  if  取消  {  
                     //回到原来的节点  
                     取消标志=true;  
                     return;  
             }  
       }  
       //查询数据库加载节点对应数据,并填充窗口  

    这明显有一个选了别的在该回来的过程,
    但是在oracle的oem里实现这个功能绝对没有这个过程,我想一定有一个其他的方法,TreeSelectionListener可以在新的选择反显时候触发但是不能取消新的选择
      

  3.   

    我覆盖了valueChanged方法结果如下:
    jTree的没有问题,JList的也可以实现但是在弹出替是的时候明显有一个新选中的行被反显然后改变回去的过程,jTree就没有这个问题。
    这个该如何解决???
      

  4.   

    是不是忘了写super.valueChanged()???
      

  5.   

    不懂!
    ListSelectionListener本来就是接口怎么回有super.valueChanged()???
    JList更不会有super.valueChanged(),楼上的什么意思