重金求教关于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大哥,我试试看,谢谢你了 希望有经历过的朋友帮我看下这个问题 404错误 在linux下运行jar文件 JAVA swing 中的按钮相应事件 java读文件简单问题 熟悉JDBC和Oracle store procedure 调用的大哥救命阿! 关于SUN认证! 一个线程执行的问题 关于JAVA@Override注解的一个问题 关于修改的问题 请大家看看 请教: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();
}
}
} }