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

📄 simpletree.java

📁 Java程序设计技巧与开发实例附书源代码。
💻 JAVA
字号:

import java.util.Enumeration;
import java.awt.FlowLayout;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.UIManager.*;
import javax.swing.event.*;

public class SimpleTree
    extends JFrame
    implements ActionListener ,TreeSelectionListener{
  private DefaultMutableTreeNode root =
      new DefaultMutableTreeNode("Web Sites");
  private JTree tree = new JTree(root);
  private JButton expand = new JButton("Expand");
  private JButton collapse = new JButton("Collapse");
  private JButton quit = new JButton("Quit");
  private JLabel status = new JLabel("Tree selection status");

  private SimpleTree() {
    super("A Simple Tree");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    createTreeStructure();
    JPanel buttons = new JPanel(new FlowLayout());
    buttons.add(collapse);
    collapse.addActionListener(this);
    buttons.add(expand);
    expand.addActionListener(this);
    buttons.add(quit);
    quit.addActionListener(this);
    getContentPane().add("Center", new JScrollPane(tree));
    getContentPane().add("South", buttons);

    getContentPane().add("North", status);
    tree.addTreeSelectionListener(this);

    validate();
    pack();
    setVisible(true);
  }

  private void createTreeStructure() {
    DefaultMutableTreeNode edu =
        new DefaultMutableTreeNode("Universities");
    DefaultMutableTreeNode com =
        new DefaultMutableTreeNode("Search Engines");
    root.add(edu);
    root.add(com);
    edu.add(new DefaultMutableTreeNode("www.whu.edu.cn"));
    edu.add(new DefaultMutableTreeNode("www.hust.edu.cn"));
    com.add(new DefaultMutableTreeNode("www.sohu.com"));
    com.add(new DefaultMutableTreeNode("www.baidu.com"));
  }

  private void collapseTree() {
    /*折叠树的所有分枝*/
    for (Enumeration nodes = root.depthFirstEnumeration();
         nodes.hasMoreElements(); ) {
      DefaultMutableTreeNode node =
          (DefaultMutableTreeNode) nodes.nextElement();
      tree.collapsePath(new TreePath(node.getPath()));
    }
  }

  private void expandTree() {
    /*展开树的所有分枝*/
    for (Enumeration nodes = root.breadthFirstEnumeration();
         nodes.hasMoreElements(); ) {
      DefaultMutableTreeNode node = (DefaultMutableTreeNode) nodes.nextElement();
      tree.expandPath(new TreePath(node.getPath()));
    }
  }

  public void actionPerformed(ActionEvent ae) {
    if (ae.getSource() == expand) {
      expandTree();
    }
    else if (ae.getSource() == collapse) {
      collapseTree();
    }
    else if (ae.getSource() == quit) {
      System.exit(0);
    }
  }

  public void valueChanged(TreeSelectionEvent tse) {
    Object path[] = tse.getPath().getPath();
    String s = path[0].toString();
    for (int i = 1; i < path.length; i++) {
      s += " – " + path[i].toString();
    }
    status.setText(s);
  }

  public static void main(String args[]) {
/*
    try {
      UIManager.setLookAndFeel(
          "com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
    }
    catch (Exception e) {
      e.printStackTrace();
    }
*/
    SimpleTree st = new SimpleTree();
  }
}

⌨️ 快捷键说明

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