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

📄 formdepartment.java

📁 呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜4444444444444444444
💻 JAVA
字号:
/**
 * -----------------------------------------------------------------------
 * 创建时间:2006年2月9日
 * 作    者:孙丰伟
 * 功	 能:管理系统部门,要主要添加新部门、删除原部门与修改原部门的信息.
 * 说	 明:1.这是一个边界类,也就是系统与用户交互有界面,在这一层中要访问
 * 			mode包中的ManageDepartment类中的实例方法addDepartment()实现新建一个
 * 			部门到数据库中。添加的新帐号要及到的更新到左侧的树中 。新建帐
 * 			号如果已经存在则重新建立。			
 * ------------------------------------------------------------------------
 */
package cn.sunfengwei.employee.view;

import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;

import cn.sunfengwei.employee.model.*;

public class FormDepartment extends JInternalFrame 
implements ActionListener,TreeSelectionListener{
	private JButton btnAdd,btnDelete,btnSave,btnExit;
	private Container contentPane;
	private JTree treeDepartment;
	private DefaultTreeModel treeModel;
	private MyDefaultMutableTreeNode treeNode,node;
	private JScrollPane treeScrollPane,scrollDescription;
	private JSplitPane leftSplitPane;
	private JTextField txtId,txtName,txtLeader,txtPhone;
	private JTextArea txtDescription;
	private DepartmentDTO department;
	private DepartmentDAO departmentDAO;
	private Vector<DepartmentDTO> departments;
	public FormDepartment(String title) {
		 super(title, 
	              false, //resizable
	              true, //closable
	              true, //maximizable
	              true);//iconifiable
	contentPane=this.getContentPane();
	
	treeScrollPane=new JScrollPane(this.setTree());
	treeDepartment.addTreeSelectionListener(this);
	
	leftSplitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,this.treeScrollPane,setDepartmentPanel());
	leftSplitPane.setDividerLocation(150);
	this.contentPane.add(leftSplitPane);
	this.setBounds(10,10,600,450);
	
	this.contentPane.add(this.createToolBar(),BorderLayout.NORTH);
	}
	private JToolBar createToolBar()
	{
		JToolBar toolBar=new JToolBar();
		btnAdd=new JButton(new ImageIcon("images\\add.gif"));
		btnExit=new JButton(new ImageIcon("images\\exit.gif"));
		btnSave=new JButton(new ImageIcon("images\\save1.gif"));
		btnDelete=new JButton(new ImageIcon("images\\del.gif"));
		btnAdd.setActionCommand("add");
		btnSave.setActionCommand("save");
		btnDelete.setActionCommand("delete");
		btnExit.setActionCommand("exit");
		btnAdd.addActionListener(this);
		btnSave.addActionListener(this);
		btnDelete.addActionListener(this);
		btnExit.addActionListener(this);
		
		toolBar.add(btnAdd);
		toolBar.add(btnSave);
		toolBar.add(btnDelete);
		toolBar.addSeparator();
		toolBar.add(btnExit);
		return toolBar;
	}
	private JTree setTree()
	{
		treeModel=new DefaultTreeModel(getTreeNode());
		treeDepartment=new JTree(treeModel);
		
		return treeDepartment;
	}
	private JPanel setDepartmentPanel()
	{
		JPanel panel=new JPanel();
//		使用Box容器,设置登录窗体中的组件
		Box boxTitle=Box.createVerticalBox();
		boxTitle.add(Box.createVerticalStrut(8));
		boxTitle.add(new JLabel("部门ID:"));
		boxTitle.add(Box.createVerticalStrut(15));
		boxTitle.add(new JLabel("名   称:"));
		boxTitle.add(Box.createVerticalStrut(15));
		boxTitle.add(new JLabel("主   管:"));
		boxTitle.add(Box.createVerticalStrut(15));
		boxTitle.add(new JLabel("电   话:"));
		boxTitle.add(Box.createVerticalStrut(15));
		boxTitle.add(new JLabel("职   能:"));
		boxTitle.add(Box.createVerticalStrut(130));
		txtId=new JTextField(25);  //20个字符	
		txtName=new JTextField();
		txtDescription=new JTextArea();
		txtDescription.setRows(8);
		txtLeader=new JTextField();;
		txtPhone=new JTextField();
		scrollDescription=new JScrollPane(txtDescription);
		Box boxUser=Box.createVerticalBox();
		boxUser.add(Box.createVerticalStrut(6));
		boxUser.add(txtId);
		boxUser.add(Box.createVerticalStrut(9));
		boxUser.add(txtName); 
		boxUser.add(Box.createVerticalStrut(9));
		boxUser.add(txtLeader); 
		boxUser.add(Box.createVerticalStrut(9));
		boxUser.add(txtPhone); 
		boxUser.add(Box.createVerticalStrut(9));
		boxUser.add(scrollDescription); 
		Box baseBox=Box.createHorizontalBox();
		baseBox.add(boxTitle);
		baseBox.add(Box.createHorizontalStrut(10));
		baseBox.add(boxUser);
		/*-----------------------------------------------*/
		FlowLayout flow=new FlowLayout();
		flow.setAlignment(FlowLayout.LEFT);
		panel.setLayout(flow);
		panel.add(baseBox);
		
		contentPane.validate();
		return panel;
	}
	private MyDefaultMutableTreeNode getTreeNode()
	{
		treeNode=new MyDefaultMutableTreeNode("信息技术教学中心"); //根
		treeNode.setTag("root");
		MyDefaultMutableTreeNode tNode;
		departmentDAO=new DepartmentDAO();
		departments=departmentDAO.getAllDepartments();
		for(DepartmentDTO dept : departments)
		{
			tNode=new MyDefaultMutableTreeNode(dept);
			tNode.setID(dept.getDID());
			treeNode.add(tNode);	
		}

		return treeNode;
	}
	/* (非 Javadoc)
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 */
	public void actionPerformed(ActionEvent e) {
		// TODO 自动生成方法存根
		String es=e.getActionCommand();
		if(es.equals("add"))
		{
			txtId.setText(String.valueOf(getNewID()));
			txtName.setText("");
			txtLeader.setText("");
			txtPhone.setText("");
			txtDescription.setText("");
			txtName.requestFocus(true);
		}
		else if(es.equals("save"))
		{
			//this.saveUser();
			
			if(this.isExsitedId(Integer.parseInt(txtId.getText())))
			{
				//修改
				int n=JOptionPane.showConfirmDialog(this,"你真的要修改当前部门信息吗?","系统询问",JOptionPane.YES_NO_OPTION);
				//-----------------------------------
				if(n==JOptionPane.YES_OPTION)
				{
					this.updateDepartment();				
				}
				else
				{
					return;
				}
				//----------------------------------
			}
			else
			{
				this.addDepartment();
				
			} 
			//treeModel.reload();
		}
		else if(es.equals("delete"))
		{
			try {
				removeDepartment();
			} catch (Exception e1) {
				// TODO 自动生成 catch 块
				e1.printStackTrace();
			}
			
		}
		else if(es.equals("exit"))
		{
		this.dispose();	
		}
			
	}
	
//获得一个建议ID
private int getNewID()
{
	int id=0;

	for(DepartmentDTO dept : departments)
	{
		if(id<dept.getDID())
		{
		id=dept.getDID();	
		}
		
	}
	return id+1;
}
// 确定ID在数据库中是存否在
private boolean isExsitedId(int id)
{
	boolean flag=false;
	for(DepartmentDTO dept : departments)
	{
		
		if(id==dept.getDID())
		{
			flag=true;
		}
		
	}
	return flag;
}
//删除原部门
private void removeDepartment()
{
	//node=(MyDefaultMutableTreeNode)treeDepartment.getLastSelectedPathComponent();
	if(!node.isLeaf())
	{
		return;
	}
	
	//if(node.getTag().equals("root"))
		
	if(node.isRoot())
	{
		return;	
	}
	String depart=node.getUserObject().toString();
	int n=JOptionPane.showConfirmDialog(FormDepartment.this,"你真的要删除["+depart+"]部门吗?","系统询问",JOptionPane.YES_NO_OPTION);
	if(n==JOptionPane.YES_OPTION)
	{
		departmentDAO=new DepartmentDAO();
		if(departmentDAO.removeDepartmentById(node.getID()))
		{
		txtId.setText("");
		txtName.setText("");
		txtLeader.setText("");
		txtPhone.setText("");
		txtDescription.setText("");
		txtName.requestFocus(true);
		node.removeFromParent();
		treeModel.reload();
		}
	}
}
//添加新部门
private void addDepartment()
{
	DepartmentDAO manageDepartment=new DepartmentDAO();
	department =new DepartmentDTO();
	
	if(txtId.getText().equals(""))
	{
		JOptionPane.showMessageDialog(this,"部门编号不能为空,请输入!","系统提示",JOptionPane.INFORMATION_MESSAGE);
		txtId.requestFocus(true);
		return;
	}
	department.setDID(Integer.parseInt(txtId.getText().trim()));
	
	if(txtName.getText().equals(""))
	{
		JOptionPane.showMessageDialog(this,"部门名称不能为空,请输入!","系统提示",JOptionPane.INFORMATION_MESSAGE);
		txtName.requestFocus(true);
		return;
	}
	department.setName(txtName.getText().trim());
	department.setLeader(txtLeader.getText().trim());
	department.setPhone(txtPhone.getText().trim());
	department.setDescription(txtDescription.getText().trim());
	if(manageDepartment.addDepartment(department))
	{	
		MyDefaultMutableTreeNode tNode=new MyDefaultMutableTreeNode(department);
		tNode.setID(department.getDID());
		treeNode.add(tNode);
		departments.add(department);
		//treeModel.
		treeModel.reload();
		txtId.setText(String.valueOf(getNewID()));
		txtName.setText("");
		txtLeader.setText("");
		txtPhone.setText("");
		txtDescription.setText("");
		txtName.requestFocus(true);
		
		//departments=manageDepartment.getAllDepartments();
	}
	else
	{
  		
	}
	
}

//修改部门信息
private void updateDepartment()
{
	DepartmentDAO manageDepartment=new DepartmentDAO();
	department =new DepartmentDTO();
	
	if(txtId.getText().equals(""))
	{
		JOptionPane.showMessageDialog(this,"部门编号不能为空,请输入!","系统提示",JOptionPane.INFORMATION_MESSAGE);
		txtId.requestFocus(true);
		return;
	}
	department.setDID(Integer.parseInt(txtId.getText().trim()));
	
	if(txtName.getText().equals(""))
	{
		JOptionPane.showMessageDialog(this,"部门名称不能为空,请输入!","系统提示",JOptionPane.INFORMATION_MESSAGE);
		txtName.requestFocus(true);
		return;
	}
	department.setName(txtName.getText().trim());
	department.setLeader(txtLeader.getText().trim());
	department.setPhone(txtPhone.getText().trim());
	department.setDescription(txtDescription.getText().trim());
	if(manageDepartment.updateDepartment(department))
	{
		JOptionPane.showMessageDialog(this,"部门信息修改结束!!","系统提示",JOptionPane.INFORMATION_MESSAGE);
		txtId.setText("");
		txtName.setText("");
		txtLeader.setText("");
		txtPhone.setText("");
		txtDescription.setText("");
		txtName.requestFocus(true);
		departments=manageDepartment.getAllDepartments();
		 node.setUserObject(department);
		this.treeModel.reload();
	}
	else
	{
  		
	}
	
}

public void valueChanged(TreeSelectionEvent e) {
	// TODO 自动生成方法存根
	//MyDefaultMutableTreeNode
	try{
	node=(MyDefaultMutableTreeNode)treeDepartment.getLastSelectedPathComponent();
	
	//this.setTitle(String.valueOf(node.getID()));
	if(!node.isLeaf())
	{
		return;
	}
	//int id=getIdByDepartmentName(node.getUserObject().toString());
	DepartmentDTO department=(DepartmentDTO)node.getUserObject();
	txtId.setText(String.valueOf(department.getDID()));
	txtName.setText(department.getName());
	txtLeader.setText(department.getLeader());
	txtPhone.setText(department.getPhone());
	txtDescription.setText(department.getDescription());
	}
	catch(Exception ex)
	{
	}
	}
}

⌨️ 快捷键说明

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