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