程序是一个水平分隔的JSplitPane组件,左边是JTree,右边是JLabel,当选择JTree中的一个子节点时,如何在右边显示相应的JLabel?没什么思路,大家指点指点。源程序如下:
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;public class TreeText003 implements TreeSelectionListener{

JFrame f = null;
JPanel p = null;
JLabel l0 = null;
JLabel l1 = null;
JLabel l2 = null;

public TreeText003(){
f = new JFrame();
Container contentPane = f.getContentPane();
DefaultMutableTreeNode node = null;

DefaultMutableTreeNode root = new DefaultMutableTreeNode("根节点");
node = new DefaultMutableTreeNode("节点1");
root.add(node);
node = new DefaultMutableTreeNode("节点2");
root.add(node);

JTree tree = new JTree(root);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.addTreeSelectionListener(this);

JScrollPane scrollPanel1 = new JScrollPane(tree);

l0 = new JLabel("根节点所显示内容");
l1 = new JLabel("节点1所显示内容");
l2 = new JLabel("节点2所显示内容");
p = new JPanel();
p.add(l0);
JScrollPane scrollPanel2 = new JScrollPane(p);
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,scrollPanel1,scrollPanel2);
splitPane.setDividerLocation(120);
splitPane.setDividerSize(4);

contentPane.add(splitPane);
f.pack();
f.show();

f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}

public void valueChanged(TreeSelectionEvent e){
JTree tree = (JTree) e.getSource();
DefaultMutableTreeNode selectionNode = 
(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if(selectionNode.isLeaf()){
if(selectionNode.getChildCount() == 1){
p.add(l1);
}
else{
p.add(l2);
}
}
}

public static void main(String [] args){
new TreeText003();
}
}