jTree1.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
// 设置选择可以包含任何数量的项,这些项不必是连续的。
jTree1.getSelectionModel().setSelectionMode(
TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
// 获取选中节点
DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) jTree1
.getLastSelectedPathComponent();
if (treeNode == null) {
return;
}
System.out.println(treeNode);
// 获取选中节点的父节点
DefaultMutableTreeNode parent = (DefaultMutableTreeNode) treeNode
.getParent();
if (parent == null) {
return;
}
System.out.println(parent);
// 获取选中节点的节点索引
int selectedIndex = parent.getIndex(treeNode);
System.out.println(selectedIndex);
}
});
public void valueChanged(TreeSelectionEvent e) {
// 设置选择可以包含任何数量的项,这些项不必是连续的。
jTree1.getSelectionModel().setSelectionMode(
TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
// 获取选中节点
DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) jTree1
.getLastSelectedPathComponent();
if (treeNode == null) {
return;
}
System.out.println(treeNode);
// 获取选中节点的父节点
DefaultMutableTreeNode parent = (DefaultMutableTreeNode) treeNode
.getParent();
if (parent == null) {
return;
}
System.out.println(parent);
// 获取选中节点的节点索引
int selectedIndex = parent.getIndex(treeNode);
System.out.println(selectedIndex);
}
});
解决方案 »
- 新手求教
- 关于实例化时函数的问题
- 请教各位如何利用apache的dbutils获得数据库所有表的metadata信息?
- JTabbedPane上添加JPanel为何不显示???
- 急,写了一个JDBC程序出乱码,问题在哪?
- 请教一个棘手的问题?
- 求救:jsp访问mysql可以多库查询吗,即一次从2个以上库中查询数据
- TOMCAT5.59安装成功后,http:\\localhost 为什么没有正确显示页面:
- JTABLE的难题:我想在鼠标右键点击JTABLE时被点中的那一行被选中,如何实现?
- Runtime.getRuntime().exec一个很奇怪的问题~~~
- 求一 BestMail 的jar包 非常感谢
- JFrame 菜单有关的问题
at examples.Tree.initComponents(Tree.java:102)
at examples.Tree.<init>(Tree.java:51)
at examples.Tree$4.run(Tree.java:300)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
你是不是想想得到你选中的节点?
其实你可以用鼠标事件去处理你现在的状况jTree1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTree1MouseClicked(evt);
}
}再来一个方法
private void jTree1MouseClicked(java.awt.event.MouseEvent evt) {
TreePath path = jTree1.getSelectionPath(); //获取你所选的路径,会列出一个数组,那就是你的树的层级名称
DefaultMutableTreeNode type=(DefaultMutableTreeNode) path.getPathComponent(3);//看你的这行代码没加括号里面的参数,所以获取不到你到底要获取第几行树节点名,加个参数就好了}其它的代码没什么问题,可以根据你个人需要去加。