重金求教关于JTree的一个问题 急,急,急~~ 果然,checkBox的值改变之前,事件已经触发了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Error大哥,你终于来了,我等一上午你觉得主方法那个地方应该改一下 public void mouseClicked(MouseEvent e) { int x = e.getX(); int y = e.getY(); int row = tree.getRowForLocation(x, y); TreePath path = tree.getPathForRow(row); if (path != null) { CheckBoxNode node = (CheckBoxNode) path.getLastPathComponent(); boolean isSelected = ! (node.isSelected()); node.setSelected(isSelected); if (node.getSelectionMode() == CheckBoxNode.DIG_IN_SELECTION) { if (isSelected) { tree.expandPath(path); } else { tree.collapsePath(path); } } ( (DefaultTreeModel) tree.getModel()).nodeChanged(node); if (row == 0) { tree.revalidate(); tree.repaint(); } } if (rightTree == e.getSource()) { try { hashTable = new Hashtable(); CheckBoxNode selectedNode = (CheckBoxNode) rightTree. getLastSelectedPathComponent(); CheckBoxNode parentNode = (CheckBoxNode) selectedNode.getParent(); if (selectedNode.isLeaf()) { Enumeration enum = parentNode.children(); value = new String[parentNode.getChildCount()]; while (enum.hasMoreElements()) { for (int j = 0; j < value.length; j++) { value[j] = (parentNode.toString() + " " + String.valueOf( ( (CheckBoxNode) enum.nextElement()). isSelected)); } } hashTable.put(key, value); Iterator iterator = hashTable.keySet().iterator(); String[] getValue; while (iterator.hasNext()) { String s = (String) iterator.next(); System.out.println("key " + s); getValue = (String[]) (hashTable.get(s)); for (int i = 0; i < getValue.length; i++) { System.out.print(" value " + " " + value[i]); } } } } catch (Exception exception) { exception.printStackTrace(); } } } } 你的节点读取应放在mouseclick里,这样读出来的值才是修改后的值。呵呵 谢谢,ALLError大哥,我试试看,谢谢你了 求助,局部内部类的使用! 请问怎么使程序进入别的文件夹下运行呢? 大家来做题吧,每天一题,面试题 菜鸟冒死提问 如何用Java计算字符串表示的表达式的值? 急!!为什么不实现接口所有的方法也可以使用该接口? 怎么回事呢? 为了迅速提高各位初学者的java水平,我想在网上和大家联系!想开发几个小型项目! this用法不理解 帮忙看一下小代码 请教:Java运行时会有一个DOS窗口,能不能去掉,只显示窗体?(别笑) 如何使用SimpleDataFormat类?
int x = e.getX();
int y = e.getY();
int row = tree.getRowForLocation(x, y);
TreePath path = tree.getPathForRow(row);
if (path != null) {
CheckBoxNode node = (CheckBoxNode) path.getLastPathComponent();
boolean isSelected = ! (node.isSelected());
node.setSelected(isSelected);
if (node.getSelectionMode() == CheckBoxNode.DIG_IN_SELECTION) {
if (isSelected) {
tree.expandPath(path);
}
else {
tree.collapsePath(path);
}
}
( (DefaultTreeModel) tree.getModel()).nodeChanged(node);
if (row == 0) {
tree.revalidate();
tree.repaint();
}
}
if (rightTree == e.getSource()) {
try {
hashTable = new Hashtable();
CheckBoxNode selectedNode = (CheckBoxNode) rightTree.
getLastSelectedPathComponent();
CheckBoxNode parentNode = (CheckBoxNode) selectedNode.getParent();
if (selectedNode.isLeaf()) {
Enumeration enum = parentNode.children();
value = new String[parentNode.getChildCount()];
while (enum.hasMoreElements()) {
for (int j = 0; j < value.length; j++) {
value[j] = (parentNode.toString() + " " +
String.valueOf( ( (CheckBoxNode) enum.nextElement()).
isSelected));
}
}
hashTable.put(key, value);
Iterator iterator = hashTable.keySet().iterator();
String[] getValue;
while (iterator.hasNext()) {
String s = (String) iterator.next();
System.out.println("key " + s);
getValue = (String[]) (hashTable.get(s));
for (int i = 0; i < getValue.length; i++) {
System.out.print(" value " + " " + value[i]);
}
}
}
}
catch (Exception exception) {
exception.printStackTrace();
}
}
} }