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

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

?? frameworkpanel.java

?? JAVA開發的企業人事管理系統,含有詳細的開發文檔,可做畢業設計.
?? 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一区二区三区免费野_久草精品视频
久久久久久久久久电影| 亚洲va中文字幕| 一区二区日韩av| 韩国三级中文字幕hd久久精品| 成人免费视频免费观看| 777xxx欧美| 亚洲人亚洲人成电影网站色| 人人超碰91尤物精品国产| 91亚洲精品久久久蜜桃网站| 欧美成人一区二区| 国产精品456露脸| 欧美伦理影视网| 亚洲人成人一区二区在线观看| 狠狠色综合播放一区二区| 欧美日韩久久久久久| 亚洲视频免费看| 成人的网站免费观看| 久久老女人爱爱| 国产伦理精品不卡| 精品欧美一区二区久久| 日本午夜精品一区二区三区电影| 色综合天天在线| 亚洲欧美国产高清| 99国产精品99久久久久久| 欧美激情一区二区三区在线| 免费成人在线观看| 日韩欧美一区二区久久婷婷| 午夜亚洲福利老司机| 在线观看欧美精品| 一区二区三区自拍| 欧美性色aⅴ视频一区日韩精品| 中文字幕一区二区三区色视频| 成人综合婷婷国产精品久久免费| 国产三级精品在线| 9久草视频在线视频精品| 国产精品每日更新在线播放网址| 国产高清在线精品| 欧美国产精品中文字幕| 成人激情文学综合网| 最新中文字幕一区二区三区| 成人av手机在线观看| 亚洲免费在线看| 在线这里只有精品| 亚洲电影第三页| 日韩欧美一级特黄在线播放| 黄页视频在线91| 日本一区二区三区视频视频| 成人精品在线视频观看| 一区二区日韩av| 欧美一激情一区二区三区| 久久91精品久久久久久秒播| 久久久不卡网国产精品二区| 波多野结衣在线一区| 一区二区三区中文字幕| 在线成人高清不卡| 一本一道波多野结衣一区二区| 亚洲视频图片小说| 欧美一区二区视频在线观看2022| 国产综合久久久久久鬼色| 中文字幕一区二区三区色视频| 欧亚一区二区三区| 韩国欧美一区二区| 亚洲丝袜精品丝袜在线| 欧美精品乱码久久久久久| 激情六月婷婷久久| 亚洲乱码国产乱码精品精可以看| 欧美日韩一区二区电影| 国产自产2019最新不卡| 亚洲精品久久7777| 精品久久久久一区| 色婷婷av一区二区三区大白胸| 视频一区二区三区入口| 欧美激情综合网| 欧美一区二区三区在线视频| 国产高清成人在线| 日韩国产在线观看一区| 国产精品久久午夜| 91精品国产全国免费观看| 99视频有精品| 极品销魂美女一区二区三区| 亚洲一区二区三区不卡国产欧美| 久久品道一品道久久精品| 欧美性猛交一区二区三区精品| 国产激情视频一区二区在线观看| 视频一区中文字幕国产| 18成人在线观看| 久久久久久久久久久久久女国产乱 | 日本中文在线一区| 日韩理论片一区二区| 久久亚洲欧美国产精品乐播| 欧美精品一区在线观看| 欧洲激情一区二区| 91女人视频在线观看| 国产高清亚洲一区| 美女脱光内衣内裤视频久久影院| 亚洲免费电影在线| 国产精品丝袜一区| 久久亚洲私人国产精品va媚药| 在线成人午夜影院| 欧美喷水一区二区| 在线影院国内精品| 色婷婷精品大在线视频| 99热99精品| 成人免费va视频| 成人激情小说网站| 成人一区二区三区在线观看| 国产一区视频导航| 久久99这里只有精品| 日本美女视频一区二区| 午夜精彩视频在线观看不卡| 亚洲一区二区三区四区的 | 成人久久视频在线观看| 国产精品一区二区在线看| 九九在线精品视频| 激情深爱一区二区| 国产精品白丝jk白祙喷水网站 | 性做久久久久久免费观看欧美| 1024成人网| 亚洲一区在线播放| 亚洲成人综合在线| 日韩av在线发布| 麻豆国产一区二区| 国产成人午夜电影网| 成人国产免费视频| 99热在这里有精品免费| 91免费观看国产| 欧美日韩一区二区电影| 欧美一区二区三区小说| 久久综合精品国产一区二区三区| 久久精品综合网| 国产精品情趣视频| 亚洲综合色婷婷| 全部av―极品视觉盛宴亚洲| 极品尤物av久久免费看| 成人网在线免费视频| 色综合久久中文综合久久97| 欧美色大人视频| 日韩亚洲国产中文字幕欧美| 26uuu欧美日本| 亚洲视频每日更新| 日av在线不卡| av综合在线播放| 欧美另类z0zxhd电影| 精品国产网站在线观看| 中文字幕一区二区三区视频| 五月综合激情网| 成人精品鲁一区一区二区| 欧美在线免费视屏| 久久久久免费观看| 一区二区三区日韩精品| 久久国产精品99久久久久久老狼| 高清视频一区二区| 这里只有精品视频在线观看| 国产欧美精品一区二区色综合朱莉 | 日韩精品最新网址| 国产精品美女一区二区三区| 亚洲成av人影院| 成人免费高清视频| 欧美一级午夜免费电影| 亚洲桃色在线一区| 国内精品不卡在线| 欧美日韩高清一区二区三区| 国产网站一区二区| 免费一级片91| 在线观看成人小视频| 久久亚洲免费视频| 日韩电影免费在线| 日本韩国欧美一区| 久久精品综合网| 捆绑调教一区二区三区| 91国偷自产一区二区三区观看| 久久久国产精品午夜一区ai换脸| 亚洲第一成人在线| 91在线视频网址| 国产农村妇女毛片精品久久麻豆 | 国产精品乱码妇女bbbb| 黄一区二区三区| 欧美一区二区三区思思人| 亚洲色图在线视频| 国产91色综合久久免费分享| 日韩欧美中文字幕制服| 午夜视频久久久久久| 色综合久久综合网欧美综合网| 久久理论电影网| 国产一区二区三区蝌蚪| 欧美电影免费提供在线观看| 午夜精品一区二区三区免费视频| 99re这里只有精品首页| 中文字幕精品综合| 国产成人免费视频网站高清观看视频 | 视频一区二区三区在线| 欧美日韩精品一区二区三区| 亚洲综合视频在线观看| 91在线国产观看| 日韩一区日韩二区| 91免费看片在线观看| **性色生活片久久毛片| 99久久精品国产网站| 中文字幕在线观看不卡视频| 成人动漫中文字幕|