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

📄 treeselectiondemo.java

📁 java入门经典教程 java入门经典教程 java入门经典教程
💻 JAVA
字号:
// 例6.7.2 TreeSelectionDemo.java
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*; 
public class TreeSelectionDemo implements TreeSelectionListener
{
    JFrame frame;
    JPanel panel;
    JLabel label;
    JTextArea textArea;
    JScrollPane scrollPane1,scrollPane2;
    public TreeSelectionDemo() 
{
        frame = new JFrame("TreeSelectionDemo");
        Container contentPane = frame.getContentPane();
        
        DefaultMutableTreeNode root = new DefaultMutableTreeNode("Java技术文档");
        DefaultMutableTreeNode branch1 = new DefaultMutableTreeNode("J2SE");
        DefaultMutableTreeNode branch2 = new DefaultMutableTreeNode("J2EE");
        DefaultMutableTreeNode branch3 = new DefaultMutableTreeNode("J2ME");
        root.add(branch1);root.add(branch2);root.add(branch3);
        
        branch1.add(new DefaultMutableTreeNode("面向对象基础知识"));
        branch1.add(new DefaultMutableTreeNode("图形用户界面"));
        branch1.add(new DefaultMutableTreeNode("网络与通信"));
	    branch1.add(new DefaultMutableTreeNode("文件系统"));
        branch1.add(new DefaultMutableTreeNode("数据库应用"));
        
        JTree tree = new JTree(root);
        tree.addTreeSelectionListener(this); // 为tree对象注册监听器
        
scrollPane1 = new JScrollPane(tree);
        label = new JLabel("您选择了:");
        textArea = new JTextArea();  // 创建一个文本域对象
        textArea.setLineWrap(true);  // 设置允许换行
        scrollPane2 = new JScrollPane(textArea); 

        panel = new JPanel();  // 创建一个面板容器对象
        // 将JPanel对象的布局管理器设置为BoxLayout,并以Y轴作为轴方向
        panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
        panel.add(label);panel.add(scrollPane2);
        
        contentPane.add(scrollPane1,BorderLayout.WEST);
        contentPane.add(panel,BorderLayout.CENTER);
        frame.setSize(300,200);
        frame.setVisible(true);        
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
    // 处理来自树节点状态改变的事件
    public void valueChanged(TreeSelectionEvent e)
{ 
        JTree tree = (JTree)e.getSource(); // 获得事件源所在对象
		TreePath treepath=tree.getSelectionPath(); // 获得当前选择节点的路径
        DefaultMutableTreeNode selectionNode =(DefaultMutableTreeNode)tree.g
etLastSelectedPathComponent();      //获得当前选取的节点对象
        
        String nodePath = treepath.toString();
        String nodeName = selectionNode.toString();
      
        //判断是否为树叶节点,若是则给与说明,否则仅给出路径显示
        if (selectionNode.isLeaf()) 
{
            textArea.setText(nodePath + "\n其中" + nodeName + "是叶子节点");
        }
        else textArea.setText(nodePath);
    } 
    public static void main(String[] args) 
{
        new TreeSelectionDemo();
    }   
}

⌨️ 快捷键说明

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