首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

swing tree 树形条的兑现

2012-12-19 
swing tree 树形条的实现import java.awt.event.*import javax.swing.*import javax.swing.event.TreeSe

swing tree 树形条的实现

import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*;


public class Tree extends JFrame implements TreeSelectionListener {
    private JLabel label;
    public Tree()
    {
    super("树形菜单");setSize(400,400);
    Container container=getContentPane();
   
    DefaultMutableTreeNode rooTreeNode=new DefaultMutableTreeNode("文本编辑器");
    DefaultMutableTreeNode node1=new DefaultMutableTreeNode("文件");
    DefaultMutableTreeNode node2=new DefaultMutableTreeNode("编辑");
   
    DefaultTreeModel treeModel=new DefaultTreeModel(rooTreeNode);
    treeModel.insertNodeInto(node1, rooTreeNode, rooTreeNode.getChildCount());
    treeModel.insertNodeInto(node2, rooTreeNode, rooTreeNode.getChildCount());
   
    DefaultMutableTreeNode leafnode=new DefaultMutableTreeNode("打开");
    treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
    leafnode=new DefaultMutableTreeNode("保存");
    treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
    leafnode=new DefaultMutableTreeNode("另存为");
    treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
    leafnode=new DefaultMutableTreeNode("关闭");
    treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
 
    leafnode=new DefaultMutableTreeNode("剪切");
    treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
    leafnode=new DefaultMutableTreeNode("复制");
    treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
    leafnode=new DefaultMutableTreeNode("粘贴");
    treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
   
    JTree tree=new JTree(treeModel);
    //tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SIN)
    tree.addTreeSelectionListener(this);
    tree.setRowHeight(20);
   
   /* DefaultTreeCellRenderer cellRenderer=(DefaultTreeCellRenderer)tree.getCellRenderer();
    cellRenderer.setFont(new Font("Serif",Font.PLAIN,14));
    cellRenderer.setBackgroundSelectionColor(Color.white);
    cellRenderer.setBackgroundNonSelectionColor(Color.yellow);
    cellRenderer.setBorderSelectionColor(Color.blue);*/
    container.add(new JScrollPane(tree));
   
    label=new JLabel("你当前所选的节点为:",JLabel.CENTER);
    label.setFont(new Font("Serif",Font.PLAIN,14));
    container.add(label,BorderLayout.SOUTH);
   
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
public void valueChanged(TreeSelectionEvent arg0)
{
// TODO Auto-generated method stub
JTree tree=(JTree)arg0.getSource();
DefaultMutableTreeNode selectionNode=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
String nodename=selectionNode.toString();
label.setText("您当权选取的节点为:"+nodename);
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Tree d=new Tree();
}
}

热点排行