deptdialog.java

来自「用java开发的QQ管理系统」· Java 代码 · 共 167 行

JAVA
167
字号
package com.zlf.qqserver.deptmng;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Vector;

import javax.swing.AbstractAction;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import com.zlf.dao.DaoFactory;
import com.zlf.dao.DeptDao;
import com.zlf.dao.vo.Dept;
import com.zlf.qqserver.ServerMain;

public class DeptDialog extends JPanel {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private JLabel deptNoLable = new JLabel("部门编号:");

	private JLabel deptNameLable = new JLabel("部门名称:");

	private JLabel deptMemoLable = new JLabel("部门描述:");

	private JTextField deptNoText = new JTextField(12);

	private JTextField deptNameText = new JTextField(12);

	private JTextArea deptMemoText = new JTextArea("", 12, 6);

	private JButton btnSave = new JButton("保存信息");

	private JButton btnCancel = new JButton("取消操作");

	private DeptDao dao = DaoFactory.newInstance().createDeptDao();
	
	private HashMap h=new HashMap();

	// 构造函数(传入参数)
	public DeptDialog(final JDialog dialog, final ServerMain f, final int flag) {
		deptMemoText.setBorder(BorderFactory.createLineBorder(Color.black));
		Box firstRow = Box.createHorizontalBox();
		firstRow.add(deptNoLable);
		firstRow.add(deptNoText);
		firstRow.add(Box.createHorizontalStrut(20));
		firstRow.add(deptNameLable);
		firstRow.add(deptNameText);
		Box secondRow = Box.createHorizontalBox();
		secondRow.add(deptMemoLable);
		secondRow.add(deptMemoText);
		Box btnRow = Box.createHorizontalBox();
		btnRow.add(btnSave);
		btnRow.add(Box.createHorizontalStrut(20));
		btnRow.add(btnCancel);
		Box outerBox = Box.createVerticalBox();
		outerBox.add(firstRow);
		outerBox.add(Box.createVerticalStrut(20));
		outerBox.add(secondRow);
		outerBox.add(Box.createVerticalStrut(20));
		outerBox.add(btnRow);
		this.setLayout(new BorderLayout());
		this.add(Box.createVerticalStrut(20), BorderLayout.NORTH);
		this.add(Box.createVerticalStrut(20), BorderLayout.SOUTH);
		this.add(Box.createHorizontalStrut(20), BorderLayout.WEST);
		this.add(Box.createHorizontalStrut(20), BorderLayout.EAST);
		this.add(outerBox, BorderLayout.CENTER);

		if (flag == 0) {
			// 添加动作,设置默认的部门编号,从数据库中查找最大的编号+1的编号
			h.put("2", "");
			Vector v =dao.selectDept(h);
			h.clear();
			deptNoText.setText((String) v.get(0));
			deptNoText.setEnabled(false);
		} else if (flag == 1) {
			// 修改动作,取出数据库部门表中数据
			String st = (String) f.getDepMng().getTopPanel().getDataModel()
					.getValueAt(
							f.getDepMng().getTopPanel().getTable()
									.getSelectedRow(), 0);
			// 根据部门的编号,到数据库中查找出部门信息
			System.out.println(h);
			h.put("4", st);
			Vector v = (Vector)dao.selectDept(h);
			h.clear();
			deptNoText.setText(st);
			deptNoText.setEditable(false);
			// 迭代取出数据
			Iterator iter = v.iterator();
			while (iter.hasNext()) {
				Vector ve = (Vector) iter.next();
				deptNameText.setText((String) ve.get(1));
				deptMemoText.setText((String) ve.get(2));
			}
		}

		btnSave.addActionListener(new AbstractAction() {
			/**
			 * 
			 */
			private static final long serialVersionUID = 1L;

			public void actionPerformed(ActionEvent e) {
				if (deptNameText.getText().equals("")) {
					JOptionPane.showMessageDialog(dialog, "请输入部门名称!", "提示框",
							JOptionPane.WARNING_MESSAGE);
				} else {
					Dept dept = new Dept();
					dept.setDeptId(deptNoText.getText());
					dept.setDeptName(deptNameText.getText());
					dept.setDeptRemark(deptMemoText.getText());
					if (flag == 0) {
						// 执行添加动作
						dao.addDept(dept);
					} else if (flag == 1) {
						dao.updateDept(dept);
					}
					dialog.dispose();
					// 刷新表格
					h.put("1", "");
					Vector vector = dao.selectDept(h);
					h.clear();
					f.getDepMng().getTopPanel().getDataModel().setData(vector);
					//刷新用户管理面板的部门下拉框
					h.put("3", "");
					String[] stDeptName=(String[]) dao.selectDept(h).get(0);
					h.clear();
					f.getUserMngPanel().getTopPanel().getDeptNameCombo().setModel(new 
							DefaultComboBoxModel(stDeptName));
					//将修改,删除,刷新按钮为不可使用状态
					f.getDepMng().getBotPanel().getUpdateBtn().setEnabled(false);
					f.getDepMng().getBotPanel().getDeleteBtn().setEnabled(false);
					f.getDepMng().getBotPanel().getRefurbishBtn().setEnabled(false);
				}
			}
		});

		btnCancel.addActionListener(new AbstractAction() {
			/**
			 * 
			 */
			private static final long serialVersionUID = 1L;

			public void actionPerformed(ActionEvent e) {
				dialog.dispose();
				
			}

		});
	}
}

⌨️ 快捷键说明

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