📄 jtreedemo2.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 + -