亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? frameworkpanel.java

?? &#61548 簡單適用的考勤和獎懲管理。 &#61548 簡單適用的培訓管理。 &#61548 針對企業中不同的待遇標準
?? JAVA
字號:
package com.mwq.frame.system;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.Set;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;

import com.mwq.hibernate.Dao;
import com.mwq.hibernate.HibernateSessionFactory;
import com.mwq.hibernate.mapping.TbDept;

public class FrameworkPanel extends JPanel {

	private JTree tree;

	private DefaultTreeModel treeModel;

	private DefaultMutableTreeNode root;

	private Dao dao;

	private TbDept company;

	/**
	 * Create the panel
	 */
	public FrameworkPanel() {
		super();
		dao = Dao.getInstance();
		setLayout(new BorderLayout());

		final JPanel buttonPanel = new JPanel();
		buttonPanel.setBackground(Color.WHITE);
		add(buttonPanel, BorderLayout.NORTH);

		final JButton updateButton = new JButton();
		updateButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				TreePath selectionPath = tree.getSelectionPath();
				TbDept selected = null;
				String newName = null;
				if (selectionPath.getPathCount() == 1) {// 修改公司名稱
					int i = JOptionPane.showConfirmDialog(null, "確定要修改貴公司的名稱?",
							"友情提示", JOptionPane.YES_NO_OPTION);// 彈出提示框
					if (i == 0) {// 修改(單擊“是”按鈕)
						String infos[] = { "請輸入貴公司的新名稱:", "修改公司名稱",
								"請輸入貴公司的新名稱!" };
						newName = getName(infos);// 獲得修改后的名稱
						if (newName != null)
							selected = company;// 修改的為公司名稱
					}
				} else {// 修改部門名稱
					String infos[] = { "請輸入部門的新名稱:", "修改部門名稱", "請輸入部門的新名稱!" };
					newName = getName(infos);// 獲得修改后的名稱
					if (newName != null) {
						selected = company;// 選中部門的所屬部門
						Object[] paths = selectionPath.getPath();// 選中部門節點的路徑對象
						for (int i = 1; i < paths.length; i++) {// 遍歷選中節點路徑
							Iterator deptIt = selected.getTbDepts().iterator();
							finded: while (deptIt.hasNext()) {// 通過循環查找選中節點路徑對應的部門
								TbDept dept = (TbDept) deptIt.next();
								if (dept.getName().equals(paths[i].toString())) {
									selected = dept;// 找到選中節點路徑對應的部門
									break finded;// 跳出到指定位置
								}
							}
						}
					}
				}
				if (selected != null) {
					DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) selectionPath
							.getLastPathComponent();// 獲得選中節點對象
					treeNode.setUserObject(newName);// 修改節點名稱
					treeModel.reload();// 刷新樹結構
					tree.setSelectionPath(selectionPath);// 設置節點為選中狀態
					//
					selected.setName(newName);// 修改部門對象
					dao.updateObject(company);// 將修改持久化到數據庫
					HibernateSessionFactory.closeSession();// 關閉數據庫連接
				}

			}
		});
		updateButton.setText("修改名稱");
		buttonPanel.add(updateButton);

		final JButton delButton = new JButton();
		delButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				TreePath selectionPath = tree.getSelectionPath();
				int pathCount = selectionPath.getPathCount();// 獲得選中節點的級別
				if (pathCount == 1) {// 選中的為1級節點,即公司節點
					JOptionPane.showMessageDialog(null, "公司節點不能刪除!", "友情提示",
							JOptionPane.WARNING_MESSAGE);
				} else {// 選中的為2級或3級節點,即部門節點
					DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) selectionPath
							.getLastPathComponent();// 獲得選中部門節點對象
					int i = JOptionPane.showConfirmDialog(null, "確定要刪除該部門:"
							+ treeNode, "友情提示", JOptionPane.YES_NO_OPTION);
					if (i == 0) {// 刪除
						treeModel.removeNodeFromParent(treeNode);// 刪除選中節點
						tree.setSelectionRow(0);// 選中根(公司)節點
						TbDept selected = company;// 選中部門的所屬部門
						Object[] paths = selectionPath.getPath();// 選中部門節點的路徑對象
						int lastIndex = paths.length - 1;// 獲得最大索引
						for (int j = 1; j <= lastIndex; j++) {// 遍歷選中節點路徑
							Iterator deptIt = selected.getTbDepts().iterator();
							finded: while (deptIt.hasNext()) {// 通過循環查找選中節點路徑對應的部門
								TbDept dept = (TbDept) deptIt.next();
								if (dept.getName().equals(paths[j].toString())) {
									if (j == lastIndex) // 為選中節點
										selected.getTbDepts().remove(dept);// 刪除選中部門
									else
										// 為所屬節點
										selected = dept;
									break finded;// 跳出到指定位置
								}
							}
						}
						dao.updateObject(company);// 同步刪除數據庫
						HibernateSessionFactory.closeSession();// 關閉數據庫連接
					}
				}
			}
		});
		delButton.setText("刪除該部門");
		buttonPanel.add(delButton);

		final JButton addButton = new JButton();
		addButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				TreePath selectionPath = tree.getSelectionPath();
				int pathCount = selectionPath.getPathCount();// 獲得選中節點的級別
				had: if (pathCount == 3) {// 選中的為3級節點
					JOptionPane.showMessageDialog(null, "很抱歉,在該級部門下不能再包含子部門!",
							"友情提示", JOptionPane.WARNING_MESSAGE);
				} else {// 選中的為1級或2級節點
					String infos[] = { "請輸入部門名稱:", "添加新部門", "請輸入部門名稱!" };
					String newName = getName(infos);// 獲得新部門的名稱
					if (newName != null) {// 創建新部門
						DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) selectionPath
								.getLastPathComponent();// 獲得選中部門節點對象
						int childCount = parentNode.getChildCount();// 獲得該部門包含子部門的個數
						for (int i = 0; i < childCount; i++) {// 查看新創建的部門是否已經存在
							TreeNode childNode = parentNode.getChildAt(i);
							if (childNode.toString().equals(newName)) {
								JOptionPane.showMessageDialog(null, "該部門已經存在!",
										"友情提示", JOptionPane.WARNING_MESSAGE);
								break had;// 已經存在,跳出到指定位置
							}
						}
						DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(
								newName);// 創建新部門節點對象
						treeModel.insertNodeInto(childNode, parentNode,
								childCount);// 將新部門節點插入到選中部門節點的最后
						tree.expandPath(selectionPath);// 展開選中部門節點
						//
						TbDept selected = company;// 默認選中的為1級節點
						if (pathCount == 2) {// 選中的為2級節點
							String selectedName = selectionPath.getPath()[1]
									.toString();// 獲得選中節點的名稱
							Iterator deptIt = company.getTbDepts().iterator();// 創建公司直屬部門的迭代器對象
							finded: while (deptIt.hasNext()) {// 遍歷公司的直屬部門
								TbDept dept = (TbDept) deptIt.next();
								if (dept.getName().equals(selectedName)) {// 查找與選中節點對應的部門
									selected = dept;// 設置為選中部門
									break finded;// 跳出循環
								}
							}
						}
						TbDept sonDept = new TbDept();// 創建新部門對象
						sonDept.setName(newName);// 設置部門名稱
						sonDept.setTbDept(selected);// 建立從新部門到所屬部門的關聯
						selected.getTbDepts().add(sonDept);// 建立從所屬部門到新部門的關聯
						dao.updateObject(company);// 將新部門持久化到數據庫
						HibernateSessionFactory.closeSession();// 關閉數據庫連接
					}
				}
			}
		});
		addButton.setText("添加子部門");
		buttonPanel.add(addButton);

		final JPanel treePanel = new JPanel();
		treePanel.setBackground(Color.WHITE);
		add(treePanel, BorderLayout.CENTER);
		final FlowLayout flowLayout = new FlowLayout();
		flowLayout.setVgap(50);
		treePanel.setLayout(flowLayout);

		company = (TbDept) dao.queryDeptById(1);
		root = new DefaultMutableTreeNode(company.getName());
		Set depts = company.getTbDepts();
		for (Iterator iter = depts.iterator(); iter.hasNext();) {
			TbDept dept = (TbDept) iter.next();
			DefaultMutableTreeNode deptNode = new DefaultMutableTreeNode(dept
					.getName());
			root.add(deptNode);
			if (dept.getTbDepts().size() != 0) {
				Set sonDepts = dept.getTbDepts();
				for (Iterator iterator = sonDepts.iterator(); iterator
						.hasNext();) {
					TbDept sonDept = (TbDept) iterator.next();
					deptNode.add(new DefaultMutableTreeNode(sonDept.getName()));
				}
			}
		}
		HibernateSessionFactory.closeSession();

		treeModel = new DefaultTreeModel(root);

		tree = new JTree(treeModel);
		tree.setForeground(new Color(255, 0, 0));
		tree.setFont(new Font("", Font.BOLD, 14));
		DefaultTreeCellRenderer render = new DefaultTreeCellRenderer();// 設置結點的圖標、字體和背景色
		render.setLeafIcon(new ImageIcon());// 設置葉子結點的圖標
		render.setClosedIcon(new ImageIcon());// 設置結點折疊時的圖標
		render.setOpenIcon(new ImageIcon());// 設置結點展開時的圖標
		tree.setCellRenderer(render);
		tree.setSelectionRow(0);// 默認選中根節點
		tree.setRowHeight(26);// 設置節點的行高
		tree.getSelectionModel().setSelectionMode(
				TreeSelectionModel.SINGLE_TREE_SELECTION);// 設置節點的選取模式為單選
		treePanel.add(tree);

		//
	}

	public String getName(String infos[]) {
		String newName = "";
		while (newName != null && newName.length() == 0) {
			newName = JOptionPane.showInputDialog(null, infos[0], infos[1],
					JOptionPane.INFORMATION_MESSAGE);
			if (newName != null && newName.length() == 0) {
				JOptionPane.showMessageDialog(null, infos[2], "友情提示",
						JOptionPane.INFORMATION_MESSAGE);
			}
		}
		return newName;
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线高清视频| 51精品秘密在线观看| 日韩国产在线观看| 欧美国产一区在线| 欧美天堂亚洲电影院在线播放| 国产精品久久久久影视| 欧美丰满一区二区免费视频| 波多野洁衣一区| 欧美aaaaaa午夜精品| 国产精品嫩草影院com| 91麻豆精品国产91久久久 | 欧美视频一区二区| 国产精品一区二区在线播放| 午夜免费欧美电影| 一区免费观看视频| 久久综合色一综合色88| 欧美无砖专区一中文字| 99精品视频中文字幕| 国产精品资源在线看| 奇米777欧美一区二区| 亚洲综合一区二区精品导航| 日本一区二区三区久久久久久久久不| 欧美丰满美乳xxx高潮www| 99久久婷婷国产综合精品电影| 精品一区二区在线播放| 日韩精品电影在线观看| 亚洲午夜一区二区| 亚洲欧美电影院| 欧美高清在线一区二区| 国产日韩欧美高清| 欧美精品一区二区久久婷婷| 91精品国产免费久久综合| 欧美性淫爽ww久久久久无| 91色九色蝌蚪| 一本色道久久综合亚洲aⅴ蜜桃| 高清shemale亚洲人妖| 国产麻豆欧美日韩一区| 国产在线精品视频| 韩国理伦片一区二区三区在线播放| 日韩中文字幕1| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲欧美另类久久久精品2019| 中文字幕欧美激情| 国产精品卡一卡二| 国产精品久久久久久久久久免费看| 国产亚洲精品免费| 欧美激情一区不卡| 亚洲人成人一区二区在线观看| 成人免费在线观看入口| 中文字幕综合网| 亚洲日本青草视频在线怡红院 | 免费在线一区观看| 精品一区二区三区在线播放视频| 丝袜美腿亚洲综合| 久久精品国产免费| 国产成人精品影院| 色综合久久久久| 欧美色视频在线观看| 欧美一三区三区四区免费在线看| 91精品国产综合久久久久| 日韩视频免费观看高清完整版在线观看 | 欧美日韩一区二区在线视频| 欧美日精品一区视频| 91.麻豆视频| 精品国产乱码久久久久久夜甘婷婷| 精品免费国产二区三区| 日本一区二区视频在线| 亚洲精品ww久久久久久p站| 性欧美疯狂xxxxbbbb| 久久精品理论片| 懂色一区二区三区免费观看| 色综合婷婷久久| 91精品在线免费观看| 国产亚洲自拍一区| 亚洲美女少妇撒尿| 久久av中文字幕片| 99久久精品国产一区二区三区| 欧美在线视频你懂得| 日韩一区二区三区免费看| 国产精品美女www爽爽爽| 亚洲资源中文字幕| 九九视频精品免费| 在线中文字幕一区| 精品久久五月天| 一区二区三区四区视频精品免费| 免费亚洲电影在线| 92精品国产成人观看免费 | 国产精品国产a级| 亚洲成人黄色影院| 国产成人精品网址| 欧美日韩国产精品自在自线| 久久九九国产精品| 午夜av一区二区| av高清不卡在线| 欧美成人官网二区| 一区二区三区中文在线| 国产精品主播直播| 欧美另类一区二区三区| 国产精品久久看| 久久99国产精品麻豆| 在线观看视频一区| 国产精品理论在线观看| 精品一区二区免费视频| 欧美吻胸吃奶大尺度电影| 国产精品欧美一区喷水| 久久精工是国产品牌吗| 欧美伦理电影网| 亚洲精品五月天| 成人精品视频网站| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲国产综合色| 色综合久久九月婷婷色综合| 国产女同性恋一区二区| 久久精工是国产品牌吗| 欧美高清dvd| 亚洲一区二区av在线| 不卡一二三区首页| 久久精品夜夜夜夜久久| 美女网站在线免费欧美精品| 欧美亚州韩日在线看免费版国语版| 中文字幕高清一区| 国产激情一区二区三区| 久久久天堂av| 久久不见久久见免费视频1| 在线播放中文字幕一区| 午夜精品成人在线视频| 欧美日韩三级视频| 亚洲第一成年网| 欧美亚洲图片小说| 亚洲一二三四久久| 欧美天堂一区二区三区| 亚洲永久免费视频| 欧美性大战久久| 亚洲电影在线免费观看| 欧美色电影在线| 亚洲国产另类av| 欧美群妇大交群中文字幕| 亚洲第一成人在线| 91精品国产免费| 麻豆久久一区二区| 精品国产乱码久久久久久蜜臀 | 激情国产一区二区| 欧美成人在线直播| 国产综合色在线视频区| 久久免费视频色| 成人网在线播放| 18涩涩午夜精品.www| 色猫猫国产区一区二在线视频| 亚洲欧美日韩国产综合在线| 91麻豆精品秘密| 亚洲主播在线观看| 日韩精品最新网址| 大美女一区二区三区| 一区二区视频在线看| 欧美三级在线看| 精品亚洲欧美一区| 日本一区二区成人| 欧美性感一区二区三区| 久久精品国产精品青草| 欧美激情一区二区三区全黄| 91免费视频大全| 偷拍亚洲欧洲综合| 久久久青草青青国产亚洲免观| 99久久精品国产导航| 五月激情综合婷婷| 久久久www成人免费无遮挡大片| 国产不卡视频在线播放| 国产精品久久三区| 91麻豆精东视频| 久久精品噜噜噜成人av农村| 久久精品一区二区三区av| 成人av网址在线| 欧美日韩在线三区| 国产永久精品大片wwwapp | 国产精品国模大尺度视频| 91在线播放网址| 亚洲国产一区二区视频| 精品国产乱码久久久久久免费| 国产精品一区二区在线播放| 中文字幕在线一区免费| 99精品视频在线免费观看| 免费在线观看一区二区三区| 国产三级欧美三级日产三级99| 成人手机在线视频| 日韩国产高清影视| 精品久久久久香蕉网| 99re66热这里只有精品3直播| 依依成人精品视频| 国产亚洲精品久| 在线日韩av片| 久久99国内精品| 午夜精品久久一牛影视| 久久―日本道色综合久久| 91丝袜国产在线播放| 亚洲国产一二三| 国产精品美女www爽爽爽| 欧美日韩国产一级二级| 国产福利一区在线| 免费精品视频在线| 成人欧美一区二区三区黑人麻豆 |