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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? frameworkpanel.java

?? Java企業(yè)人事管理系統(tǒng)源碼javahr 配置Oracle數(shù)據(jù)庫 在配置Oracle數(shù)據(jù)庫時
?? JAVA
字號:
package com.mwq.frame.system;
// Download by http://www.codefans.net
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();// 選中部門節(jié)點的路徑對象
						for (int i = 1; i < paths.length; i++) {// 遍歷選中節(jié)點路徑
							Iterator deptIt = selected.getTbDepts().iterator();
							finded: while (deptIt.hasNext()) {// 通過循環(huán)查找選中節(jié)點路徑對應的部門
								TbDept dept = (TbDept) deptIt.next();
								if (dept.getName().equals(paths[i].toString())) {
									selected = dept;// 找到選中節(jié)點路徑對應的部門
									break finded;// 跳出到指定位置
								}
							}
						}
					}
				}
				if (selected != null) {
					DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) selectionPath
							.getLastPathComponent();// 獲得選中節(jié)點對象
					treeNode.setUserObject(newName);// 修改節(jié)點名稱
					treeModel.reload();// 刷新樹結(jié)構(gòu)
					tree.setSelectionPath(selectionPath);// 設置節(jié)點為選中狀態(tài)
					//
					selected.setName(newName);// 修改部門對象
					dao.updateObject(company);// 將修改持久化到數(shù)據(jù)庫
					HibernateSessionFactory.closeSession();// 關(guān)閉數(shù)據(jù)庫連接
				}

			}
		});
		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();// 獲得選中節(jié)點的級別
				if (pathCount == 1) {// 選中的為1級節(jié)點,即公司節(jié)點
					JOptionPane.showMessageDialog(null, "公司節(jié)點不能刪除!", "友情提示",
							JOptionPane.WARNING_MESSAGE);
				} else {// 選中的為2級或3級節(jié)點,即部門節(jié)點
					DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) selectionPath
							.getLastPathComponent();// 獲得選中部門節(jié)點對象
					int i = JOptionPane.showConfirmDialog(null, "確定要刪除該部門:"
							+ treeNode, "友情提示", JOptionPane.YES_NO_OPTION);
					if (i == 0) {// 刪除
						treeModel.removeNodeFromParent(treeNode);// 刪除選中節(jié)點
						tree.setSelectionRow(0);// 選中根(公司)節(jié)點
						TbDept selected = company;// 選中部門的所屬部門
						Object[] paths = selectionPath.getPath();// 選中部門節(jié)點的路徑對象
						int lastIndex = paths.length - 1;// 獲得最大索引
						for (int j = 1; j <= lastIndex; j++) {// 遍歷選中節(jié)點路徑
							Iterator deptIt = selected.getTbDepts().iterator();
							finded: while (deptIt.hasNext()) {// 通過循環(huán)查找選中節(jié)點路徑對應的部門
								TbDept dept = (TbDept) deptIt.next();
								if (dept.getName().equals(paths[j].toString())) {
									if (j == lastIndex) // 為選中節(jié)點
										selected.getTbDepts().remove(dept);// 刪除選中部門
									else
										// 為所屬節(jié)點
										selected = dept;
									break finded;// 跳出到指定位置
								}
							}
						}
						dao.updateObject(company);// 同步刪除數(shù)據(jù)庫
						HibernateSessionFactory.closeSession();// 關(guān)閉數(shù)據(jù)庫連接
					}
				}
			}
		});
		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();// 獲得選中節(jié)點的級別
				had: if (pathCount == 3) {// 選中的為3級節(jié)點
					JOptionPane.showMessageDialog(null, "很抱歉,在該級部門下不能再包含子部門!",
							"友情提示", JOptionPane.WARNING_MESSAGE);
				} else {// 選中的為1級或2級節(jié)點
					String infos[] = { "請輸入部門名稱:", "添加新部門", "請輸入部門名稱!" };
					String newName = getName(infos);// 獲得新部門的名稱
					if (newName != null) {// 創(chuàng)建新部門
						DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) selectionPath
								.getLastPathComponent();// 獲得選中部門節(jié)點對象
						int childCount = parentNode.getChildCount();// 獲得該部門包含子部門的個數(shù)
						for (int i = 0; i < childCount; i++) {// 查看新創(chuàng)建的部門是否已經(jīng)存在
							TreeNode childNode = parentNode.getChildAt(i);
							if (childNode.toString().equals(newName)) {
								JOptionPane.showMessageDialog(null, "該部門已經(jīng)存在!",
										"友情提示", JOptionPane.WARNING_MESSAGE);
								break had;// 已經(jīng)存在,跳出到指定位置
							}
						}
						DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(
								newName);// 創(chuàng)建新部門節(jié)點對象
						treeModel.insertNodeInto(childNode, parentNode,
								childCount);// 將新部門節(jié)點插入到選中部門節(jié)點的最后
						tree.expandPath(selectionPath);// 展開選中部門節(jié)點
						//
						TbDept selected = company;// 默認選中的為1級節(jié)點
						if (pathCount == 2) {// 選中的為2級節(jié)點
							String selectedName = selectionPath.getPath()[1]
									.toString();// 獲得選中節(jié)點的名稱
							Iterator deptIt = company.getTbDepts().iterator();// 創(chuàng)建公司直屬部門的迭代器對象
							finded: while (deptIt.hasNext()) {// 遍歷公司的直屬部門
								TbDept dept = (TbDept) deptIt.next();
								if (dept.getName().equals(selectedName)) {// 查找與選中節(jié)點對應的部門
									selected = dept;// 設置為選中部門
									break finded;// 跳出循環(huán)
								}
							}
						}
						TbDept sonDept = new TbDept();// 創(chuàng)建新部門對象
						sonDept.setName(newName);// 設置部門名稱
						sonDept.setTbDept(selected);// 建立從新部門到所屬部門的關(guān)聯(lián)
						selected.getTbDepts().add(sonDept);// 建立從所屬部門到新部門的關(guān)聯(lián)
						dao.updateObject(company);// 將新部門持久化到數(shù)據(jù)庫
						HibernateSessionFactory.closeSession();// 關(guān)閉數(shù)據(jù)庫連接
					}
				}
			}
		});
		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();// 設置結(jié)點的圖標、字體和背景色
		render.setLeafIcon(new ImageIcon());// 設置葉子結(jié)點的圖標
		render.setClosedIcon(new ImageIcon());// 設置結(jié)點折疊時的圖標
		render.setOpenIcon(new ImageIcon());// 設置結(jié)點展開時的圖標
		tree.setCellRenderer(render);
		tree.setSelectionRow(0);// 默認選中根節(jié)點
		tree.setRowHeight(26);// 設置節(jié)點的行高
		tree.getSelectionModel().setSelectionMode(
				TreeSelectionModel.SINGLE_TREE_SELECTION);// 設置節(jié)點的選取模式為單選
		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一区二区三区免费野_久草精品视频
国产成人精品午夜视频免费| 樱桃国产成人精品视频| 麻豆成人在线观看| 欧美成人在线直播| 国产一区二区主播在线| 欧美国产成人精品| 99久久国产免费看| 亚洲成人午夜电影| 欧美电影免费观看高清完整版在线观看| 日韩影院免费视频| 精品成人免费观看| 成人app软件下载大全免费| 中文字幕一区二区三| 欧美天堂亚洲电影院在线播放| 五月婷婷欧美视频| 欧美精品一区二区三区蜜桃视频| 成人午夜av电影| 亚洲综合在线第一页| 欧美va亚洲va在线观看蝴蝶网| 久久精品av麻豆的观看方式| 久久精品亚洲精品国产欧美kt∨| 国产精品色眯眯| 国产精品自拍网站| 久久精品免费在线观看| 97久久精品人人澡人人爽| 亚洲第一二三四区| 久久亚洲精品国产精品紫薇| 本田岬高潮一区二区三区| 亚洲资源中文字幕| 精品国产一区二区三区av性色| 成人黄色大片在线观看| 亚洲va天堂va国产va久| 久久久久青草大香线综合精品| 亚洲国产日韩一级| 日韩免费性生活视频播放| 成人爱爱电影网址| 天堂在线一区二区| 中文字幕不卡一区| 欧美一级片在线| 波多野结衣中文字幕一区二区三区| 国产很黄免费观看久久| 亚洲另类春色国产| 国产日韩欧美电影| 欧美精品在线一区二区| 成人精品电影在线观看| 美女网站色91| 一区二区三区不卡视频| 国产视频一区不卡| 欧美高清www午色夜在线视频| 丁香婷婷综合色啪| 老色鬼精品视频在线观看播放| 一区二区中文视频| 久久久九九九九| 91精品国产综合久久小美女| 色狠狠一区二区三区香蕉| 国产原创一区二区三区| 日韩精品午夜视频| 国产激情偷乱视频一区二区三区| 国产欧美日韩在线观看| 日韩一区二区精品在线观看| 日本高清无吗v一区| 成人丝袜高跟foot| 国产精品自在欧美一区| 欧美aaaaaa午夜精品| 亚洲色图视频网| 中文字幕五月欧美| 欧美国产日产图区| 久久久九九九九| 精品美女一区二区三区| 日韩精品自拍偷拍| 欧美一级在线免费| 91精品国产色综合久久不卡蜜臀| 在线免费观看视频一区| 91免费精品国自产拍在线不卡| 成人激情图片网| 岛国av在线一区| 成人av网站免费| 国产69精品一区二区亚洲孕妇| 国产麻豆视频精品| 国产美女主播视频一区| 国产乱码字幕精品高清av| 国产美女av一区二区三区| 国产在线精品视频| 国产精品一线二线三线精华| 国内精品嫩模私拍在线| 精品一区二区成人精品| 国产一区在线看| 成人美女视频在线看| 成人教育av在线| 91蜜桃视频在线| 欧美影院午夜播放| 欧美一区二区三区啪啪| 日韩精品一区二区三区swag| 久久久久久影视| 亚洲欧洲av在线| 亚洲自拍都市欧美小说| 婷婷一区二区三区| 美女视频黄 久久| 国产美女精品人人做人人爽| 不卡的看片网站| 91成人免费在线| 7777精品久久久大香线蕉| 欧美一区二区免费| 久久久高清一区二区三区| 中文在线一区二区| 亚洲精品国产无天堂网2021| 亚洲bdsm女犯bdsm网站| 国内欧美视频一区二区| av午夜一区麻豆| 欧美日韩精品一区二区天天拍小说| 制服丝袜激情欧洲亚洲| 国产亚洲欧美色| 亚洲黄色录像片| 另类专区欧美蜜桃臀第一页| 懂色一区二区三区免费观看| 91精品福利视频| 日韩欧美美女一区二区三区| 国产精品久久福利| 日韩电影免费在线看| 成人在线一区二区三区| 欧美三区在线观看| 国产欧美日韩麻豆91| 亚洲国产中文字幕在线视频综合| 国产综合色精品一区二区三区| 91丨九色丨黑人外教| 日韩欧美成人激情| 亚洲欧美国产三级| 黄一区二区三区| 欧美午夜精品一区| 中文字幕成人网| 美女网站色91| 色狠狠色噜噜噜综合网| 久久综合色天天久久综合图片| 亚洲一区在线看| 国产69精品久久久久毛片| 欧美人xxxx| 亚洲视频在线观看三级| 国内精品伊人久久久久av影院| 欧美午夜精品免费| 国产精品国产自产拍高清av| 激情五月婷婷综合| 欧美日本一区二区三区| 亚洲丝袜精品丝袜在线| 国产成人日日夜夜| 日韩片之四级片| 亚洲国产精品一区二区久久 | 日韩**一区毛片| 91玉足脚交白嫩脚丫在线播放| 精品日韩一区二区三区 | 欧美国产一区二区| 美女mm1313爽爽久久久蜜臀| 欧美性一级生活| 亚洲欧美在线视频| 国产在线视视频有精品| 欧美一级高清大全免费观看| 亚洲国产精品麻豆| 91福利国产精品| 一区二区三区四区蜜桃| www.亚洲色图.com| 国产精品久久久久桃色tv| 国产成人亚洲综合色影视| 精品国产电影一区二区| 欧美a一区二区| 日韩欧美国产一二三区| 秋霞午夜av一区二区三区 | 欧美日韩国产一级| 亚洲自拍另类综合| 欧美亚洲国产bt| 成人三级在线视频| 精品国产99国产精品| 免费成人美女在线观看.| 在线成人av影院| 日本中文一区二区三区| 7777精品伊人久久久大香线蕉 | 亚洲国产精品成人综合| 国产福利一区二区三区视频| 久久久久国色av免费看影院| 精品一二三四区| 26uuu色噜噜精品一区二区| 久久国产精品99久久人人澡| 欧美mv日韩mv| 九九**精品视频免费播放| 欧美二区乱c少妇| 亚洲成人激情综合网| 欧美伊人久久大香线蕉综合69 | 99视频精品免费视频| 亚洲特级片在线| 欧美亚洲精品一区| 日韩av电影一区| 久久美女艺术照精彩视频福利播放| 国产激情一区二区三区四区| 国产精品成人在线观看| 在线精品视频免费播放| 日韩电影免费一区| 久久这里只有精品首页| 成年人国产精品| 一区二区三区加勒比av| 日韩午夜精品电影| 高清国产一区二区| 成人免费在线视频|