getLastSelectedPathComponent()第一次选择节点返回空值,更换一个节点后工作正常。
遇到了一个非常莫名奇妙的问题,在jtree当中选择了一个节点以后,返回的是空值,如果不更换节点就一直是空值,更换一个节点以后工作正常,也就是说无论我选择哪个节点第一次运行都默认这个节点为空。
代码如下:
public void Treemassage()
{
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
if(treeNode ==null)
{return;}
else
{
a1=treeNode.toString();
}
DefaultMutableTreeNode parent1 = (DefaultMutableTreeNode) treeNode.getParent();
if(parent1 ==null)
{return;}
else
{
a2=parent1.toString();
}
DefaultMutableTreeNode parent2 = (DefaultMutableTreeNode) parent1.getParent();
if(parent2 ==null)
{return;}
else
{
a3=parent2.toString();
}
DefaultMutableTreeNode parent3 = (DefaultMutableTreeNode) parent2.getParent();
if(parent3 ==null)
{return;}
else
{
a4=parent3.toString();
}
DefaultMutableTreeNode parent4 = (DefaultMutableTreeNode) parent3.getParent();
if(parent4 ==null)
{return;}
else
{
a5=parent4.toString();
}
DefaultMutableTreeNode parent5 = (DefaultMutableTreeNode) parent4.getParent();
if(parent5 ==null)
{return;}
else
{
a6=parent5.toString();
}
DefaultMutableTreeNode parent6 = (DefaultMutableTreeNode) parent5.getParent();
if(parent6 ==null)
{return;}
else
{
a7=parent5.toString();
}
}
});
System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
System.out.println(a4);
System.out.println(a5);
System.out.println(a6);
System.out.println(a7);
}