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