怎样判断jtree和jlist中选中的值将要发生改变

icystone 2004-07-21 12:32:39
问题是这样的:选中jtree节点后我要显示出其对应的对象属性并且对其进行修改,那么在选中值发生改变之前我要询问用户是否对所作的,如果用户选择取消,那么节点的改变被取消。而用户的选择动作可能来自鼠标也可能来自键盘。
jlist的也是一样。
...全文
252 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
icystone 2004-07-23
  • 打赏
  • 举报
回复
再没有人来,我就该结贴了
simonhappy 2004-07-22
  • 打赏
  • 举报
回复
是不是忘了写super.valueChanged()???
icystone 2004-07-22
  • 打赏
  • 举报
回复
我覆盖了valueChanged方法结果如下:
jTree的没有问题,JList的也可以实现但是在弹出替是的时候明显有一个新选中的行被反显然后改变回去的过程,jTree就没有这个问题。
这个该如何解决???
icystone 2004-07-22
  • 打赏
  • 举报
回复
不懂!
ListSelectionListener本来就是接口怎么回有super.valueChanged()???
JList更不会有super.valueChanged(),楼上的什么意思
icystone 2004-07-21
  • 打赏
  • 举报
回复
我查到这个方法:
public void ValueChanged(TreeSelectionEvent evt) {
if(取消标志==true) {
取消标志=false;
return;
}
if(修改状态==true){
if(弹出“是”“否”“取消”对话框==是)
//将当前修改的数据保存
else if 取消 {
//回到原来的节点
取消标志=true;
return;
}
}
//查询数据库加载节点对应数据,并填充窗口
}
这明显有一个选了别的在该回来的过程,
但是在oracle的oem里实现这个功能绝对没有这个过程,我想一定有一个其他的方法,TreeSelectionListener可以在新的选择反显时候触发但是不能取消新的选择
icystone 2004-07-21
  • 打赏
  • 举报
回复
NO,不是这个样子的
选择节点1时候,有一个列表显示出它所对应的信息,并且用户可以更改
选择节点2时候,也作相应的显示,但是在显示之前发现用户对1的修改没有改变,于是提示是否中断对1的改变,是:显示2的内容;否:忽略对2的选择,保持原来的不变!
而valueChanged是已经把2选择上了才触发的。我是想在用户选了2但是树图上的反显还没有改变的时候触发
yoyoxo 2004-07-21
  • 打赏
  • 举报
回复
覆盖valueChanged方法,在里面进行你的判断
这个方法是当选择的项发生变化时发生,对鼠标和键盘均有效

对JList
myList.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
////。。。。。。
}
}

对JTree,同理
addTreeSelectionListener(new TreeSelectionListener(){
public void valueChanged(TreeSelectionEvent e)
{
//?????????????? }
});
ukulele8656 2004-07-21
  • 打赏
  • 举报
回复
一但用户双击该结点后,该结点变为可修改,并提示用户是否要对属性进行修改,是这个意思吗?
给组件加一个鼠标监听器,然后就等着鼠标事件发生就行了
icystone 2004-07-21
  • 打赏
  • 举报
回复
??????
simonhappy 2004-07-21
  • 打赏
  • 举报
回复
自己重载树的选择模型。当选择信息改变的时候,首先做你自己的逻辑判断,如果不通过,就不通知监听器修改。
icystone 2004-07-21
  • 打赏
  • 举报
回复
救命呀,英雄!

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧