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

📄 workflow_userlist.java

📁 用java实现的工作流
💻 JAVA
字号:
package treedoc;

/** 功能描述:
 从数据库中提取用户和部门信息生成一棵树
 */


/**
 * 名称       : WORKFLOW_USERLIST
 * 描述       : WWW.FANGFA.NET 工作流管理系统--系统用户树型用户选择类
 * 版权信息   : Copyright (c) 2004 COMSCI
 * @作者      : COMSCI Sichuan Fangfa Digital
 * @版本      : 0.9 builder 2004091910
 * @日期      : 2004/09/19
 */

import java.awt.BorderLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.AbstractAction;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;

public class workflow_userlist
    extends JPanel {

  BorderLayout borderLayout1 = new BorderLayout(); // 定义布局类
  JScrollPane jScrollPane1 = new JScrollPane();   //   定义基本容器类

  private workflow_AddStepActive wa;             //
  private workflow_StepMain wsm;                 //
  private DefaultMutableTreeNode root;           //
  private JPopupMenu menu;                       //

  public String selectuid = "";                  //
  private JTree tree;                            //

  public workflow_userlist(workflow_AddStepActive waa) {
  // 构造方法把初始外部传入的类
    wa = waa;
    wsm = new workflow_StepMain("");

    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
//定义鼠标事件,双击树节点后生成下面的用户子树
    tree.addMouseListener(new MouseAdapter() {

      public void mousePressed(MouseEvent e) {
        if (e.getButton() == MouseEvent.BUTTON3) {
          DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree.
              getLastSelectedPathComponent();
          JPopupMenu menu = createPopupMenu(e.getPoint(), selectedNode);
          menu.show(tree, e.getX(), e.getY());
        }

        if (e.getClickCount() == 2) { // 如果是双击,则生成该部门下面的子树
          DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.
              getLastSelectedPathComponent();
          if (!wsm.get_child_department(wsm.get_Did(selectNode.getUserObject().
              toString())).isEmpty() && selectNode.isLeaf()) {
            for (int j = 0;
                 j <
                 wsm.get_child_department(wsm.get_Did(selectNode.getUserObject().
                toString())).
                 size();
                 j++) {
              selectNode.add(new DefaultMutableTreeNode(wsm.
                  get_child_department(wsm.get_Did(selectNode.getUserObject().
                  toString())).get(j).toString()));
            }

          }
          else if (wsm.get_child_department(wsm.get_Did(selectNode.
              getUserObject().
              toString())).isEmpty() && selectNode.isLeaf()) {
            for (int j = 0;
                 j <
                 wsm.get_user_department(wsm.get_Did(selectNode.getUserObject().
                toString())).
                 size();
                 j++) {

              selectNode.add(new DefaultMutableTreeNode(wsm.get_user_department(
                  wsm.get_Did(selectNode.getUserObject().toString())).get(j).
                  toString()));
            }

          }
          tree.setExpandsSelectedPaths(true);
          tree.updateUI();
        }
      }
    });

  }

/////////////////////////初始方法,将库中的用户和部门信息生成一棵树///////////////


  private void jbInit() throws Exception {

    this.setDebugGraphicsOptions(0);
    this.setLayout(borderLayout1);
    jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.
                                              HORIZONTAL_SCROLLBAR_ALWAYS);
    jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.
                                            VERTICAL_SCROLLBAR_ALWAYS);

    this.add(jScrollPane1, BorderLayout.CENTER);

    root = new DefaultMutableTreeNode("系统管理部门");

    for (int i = 0; i < wsm.get_department_id().size(); i++) {
      DefaultMutableTreeNode gd = new DefaultMutableTreeNode(wsm.
          get_department_name(wsm.get_department_id().
                              get(i).toString()));
      root.add(gd);

    }
    tree = new JTree(root);

    jScrollPane1.getViewport().add(tree, null);
  }

////////////////////定义弹出菜单和处理事件,用于选择用户并将其提交给主窗口///////////////////

  public JPopupMenu createPopupMenu(final Point pt,
                                    final DefaultMutableTreeNode cell) {
    menu = new JPopupMenu();
    if (!tree.isSelectionEmpty()) {

      menu.add(new AbstractAction("选择该用户") {
        public void actionPerformed(ActionEvent e) {
          selectuid = cell.getUserObject().toString();
          wa.jTextField1.setText(selectuid);
        }
      });
      menu.addSeparator();
    }
    return menu;
  }

}

⌨️ 快捷键说明

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