直接显示tree的信息,包括子节点和父节点。如何构造一个tree。获取所选节点的信息
public class JTreeTest {
public static void main(String[] args) {
//整体窗口的使用
final JFrame jFrame=new JFrame("我的第一个窗体");
jFrame.setSize(new Dimension(800, 500));//设置窗体的大小
jFrame.setBackground(Color.BLACK);
jFrame.setLocation(new Point(300, 300));//设置窗体显示的位置
jFrame.setVisible(true);//设置jframe显示
jFrame.setLayout(new FlowLayout());
jFrame.addWindowListener(new WindowAdapter() {//加入关闭窗体事件
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("系统正在关闭");
System.exit(0);
}
});
DefaultMutableTreeNode color = new DefaultMutableTreeNode( " Color ");//设置一个tree的根节点color
DefaultMutableTreeNode gray = new DefaultMutableTreeNode ( " Gray " );//设置另一个节点gray
color.add (gray);//把Gary加入到color
//设置各个节点子类、父类关系
color.add ( new DefaultMutableTreeNode ( " Red " ));
gray.add ( new DefaultMutableTreeNode ( " Lightgray " ));
gray.add ( new DefaultMutableTreeNode ( " Darkgray " ));
color.add ( new DefaultMutableTreeNode ( " Green " ));
System.out.println(color.getChildCount());//一个节点下面的子节点数
for(int i=0;i<color.getChildCount();i++){//单级节点的打印
System.out.println(color.getChildAt(i));//打印子节点
}
final JTree example5 = new JTree (color);//初始化jtree,把根节点color传入
example5.addTreeSelectionListener(new TreeSelectionListener() {//选择的节点信息
@Override
public void valueChanged(TreeSelectionEvent e) {
// TODO Auto-generated method stub
TreePath t[]=e.getPaths();//获取所选节点的路径
if(t!=null&&t.length>0){
for(int i=0;i<t.length;i++){
System.out.println(t[i].getLastPathComponent());//打印(这样写有个问题,每次都打印选中和取消的项目)
}
}
}
});
//这是只是选中的项目打印,都一样,很简单
public void valueChanged(TreeSelectionEvent e) {
// TODO Auto-generated method stub
flag=false;
TreePath t[]=example5 .getSelectionPaths();
if(t!=null&&t.length>0){
for(int i=0;i<t.length;i++){
System.out.println(t[i].getLastPathComponent());
}
flag=true;
}
}
jFrame.add(example5);//加入jframe面板
}
}