⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jtreedemo2.java

📁 这是一个简单的图书管理系统,适用于教学中演示,讲解java高级编程语言
💻 JAVA
字号:
/**
 * 
 */
package helpfile;

import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
public class JTreeDemo2 extends JFrame implements TreeSelectionListener
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JLabel label;
	
	public JTreeDemo2()
	{
		super("JTreeDemo");
		setSize(400, 400);
		
        Container container = getContentPane();
        
        //创建根节点和子节点
        DefaultMutableTreeNode root = new DefaultMutableTreeNode("我的电脑");
        DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("硬盘");
        DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("可移动存储的设备");
        //利用根节点创建TreeModel
        DefaultTreeModel treeModel = new DefaultTreeModel(root);
        //插入子节点node1,node2
        treeModel.insertNodeInto(node1, root, root.getChildCount());
        treeModel.insertNodeInto(node2, root, root.getChildCount());
        
        //创建节点node1的子节点并插入
        DefaultMutableTreeNode leafnode = new DefaultMutableTreeNode("本地磁盘(C:)");
        treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
        leafnode = new DefaultMutableTreeNode("软件安装磁盘(D:)");
        treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
        leafnode = new DefaultMutableTreeNode("学习盘(E:)");
        treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
        leafnode = new DefaultMutableTreeNode("备份盘(F:)");
        treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
        
        //创建节点node2的子节点并插入
        leafnode = new DefaultMutableTreeNode("DVD 驱动器(G:)");
        treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
        leafnode = new DefaultMutableTreeNode("DVD 驱动器(H:)");
        treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
        
        //创建树对象
        JTree tree = new JTree(treeModel);
        //设置Tree的选择模式为一次只能选择一个节点
        tree.getSelectionModel().setSelectionMode(
        		                     TreeSelectionModel.SINGLE_TREE_SELECTION);
        //注册监听器
        tree.addTreeSelectionListener(this);

        tree.setRowHeight(20);
        
        //创建节点绘制对象
        DefaultTreeCellRenderer cellRenderer = 
        	                  (DefaultTreeCellRenderer)tree.getCellRenderer();
        //设置字体
        cellRenderer.setFont(new Font("Serif", Font.PLAIN, 14));
        cellRenderer.setBackgroundNonSelectionColor(Color.white);
        cellRenderer.setBackgroundSelectionColor(Color.yellow);
        cellRenderer.setBorderSelectionColor(Color.red);
        
        //设置选时或不选时,文字的变化颜色
        cellRenderer.setTextNonSelectionColor(Color.black);
        cellRenderer.setTextSelectionColor(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);
    }

    //处理TreeSelectionEvent事件
    public void valueChanged(TreeSelectionEvent event) 
    {
        JTree tree = (JTree) event.getSource(); 
        //获取目前选取的节点.
        DefaultMutableTreeNode selectionNode =
               (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();

        String nodeName = selectionNode.toString();
        label.setText("你当前选取的节点为: " + nodeName);
    }
    
    public static void main(String args[]) 
    {
        JTreeDemo2 application = new JTreeDemo2();
    }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -