jzjtree.java

来自「这个是个人编写的winzip软件」· Java 代码 · 共 66 行

JAVA
66
字号
package org.jr.jzj;

/**
 * <p>Copyright: Copyright (c) 2002-2003</p>
 * <p>Company: JavaResearch(http://www.javaresearch.org)</p>
 * <p>最后更新日期:2003年3月20日
 * @author Brain,Cherami,Barney
 * @version 0.8
 */

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;

/**
 * 以树形结构显示内容的导航面板的树形结构类。
 */

public class JZJTree
    extends JTree {
  private static JZJLogger logger = new JZJLogger(JZJTree.class);
  private JZJResources resource = JZJResources.getResources();
  private JZJTableModel tableModel;
  /**
   * 根据指定的树形模型和表格模型构造一个JZJTree。
   * @param treeModel 树形模型
   * @param tableModel 表格模型
   */
  public JZJTree(JZJTreeModel treeModel, JZJTableModel tableModel) {
    super(treeModel);
    this.tableModel = tableModel;
    init();
  }

  /**
   * 完成树形结构的初始化。
   */
  private void init() {
    setRootVisible(false);
    setShowsRootHandles(true);

    DefaultTreeCellRenderer ren = new DefaultTreeCellRenderer();
    ren.setLeafIcon(ren.getClosedIcon());
    setCellRenderer(ren);

    addTreeSelectionListener(new TreeSelectionListener() {
      public void valueChanged(TreeSelectionEvent e) {
        Object o = e.getSource();
        if (o instanceof JZJTree) {
          JZJTree t = (JZJTree) o;
          if (t.isSelectionEmpty()) {
            tableModel.clear();
          }
          else {
            JZJTreeObject to = (JZJTreeObject)
                ( ( (DefaultMutableTreeNode) t.getSelectionPath().
                   getLastPathComponent()).getUserObject());
            tableModel.clear();
            tableModel.addRows(to.getEntries());
          }
        }
      }
    });
  }
}

⌨️ 快捷键说明

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