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

📄 changedlg.java

📁 简单的实现了一个人事资源管理系统
💻 JAVA
字号:
package mypackage;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JButton;

import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.AbstractTableModel;


import com.jgoodies.forms.factories.FormFactory;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.RowSpec;

public class ChangeDlg extends JDialog {
	
		class TableTableModel extends AbstractTableModel {
			/**
			 * 
			 */
			private Vector<Vector<Comparable>> content = null;

			private static final long serialVersionUID = 1L;

			private String[] title_name = {"ID", "员工号", "原部门", "新部门", "变更日期", "变更时间"};

			public TableTableModel() {
				content = new Vector<Vector<Comparable>>();
			}

			public TableTableModel(int count) {
				content = new Vector<Vector<Comparable>>(count);
			}

			// public final String[] COLUMN_NAMES = new String[] {"员工号", "姓名"};
			// private String[][] CELLS=new
			// String[][]{{"001","孙业亮"},{"002","孙妍"},{"003","孙三"}};
			public void addRow(String Stno, String eDep,String nDep,String changeTime,String changeReason) {
				Vector<Comparable> v = new Vector<Comparable>(3);
				v.add(0, new Integer(content.size() + 1));
				v.add(1, Stno);
				v.add(2, eDep);
				v.add(3, nDep);
				v.add(4, changeTime);
				v.add(5, changeReason);
				content.add(v);
			}

			public void removeRow(int row) {
				content.remove(row);
			}

			public void removeRows(int row, int count) {
				for (int i = 0; i < count; i++) {
					if (content.size() > row) {
						content.remove(row);
					}
				}
			}

			/**
			 * 让表格中某些值可修改,但需要setValueAt(Object value, int row, int col)方法配合才能使修改生效
			 */
			public boolean isCellEditable(int rowIndex, int columnIndex) {
				// if (columnIndex == 0) {
				return false;
				// }
				// return true;
			}

			/**
			 * 使修改的内容生效
			 */
			@SuppressWarnings("unchecked")
			public void setValueAt(Object value, int row, int col) {
				((Vector) content.get(row)).remove(col);
				((Vector) content.get(row)).add(col, value);
				this.fireTableCellUpdated(row, col);
			}

			public String getColumnName(int col) {
				return title_name[col];
			}

			public int getColumnCount() {
				return title_name.length;
			}

			public int getRowCount() {
				return content.size();
			}

			public Object getValueAt(int row, int col) {
				return ((Vector) content.get(row)).get(col);
			}

			/**
			 * 返回数据类型
			 */
			@SuppressWarnings("unchecked")
			public Class getColumnClass(int col) {
				return getValueAt(0, col).getClass();
			}

		}
	private JTextField changeReason;
	private JTextField changeTime;
	private JTextField nDep;
	private JTextField eDep;
	private JTextField stano;
	private JTable table;
	TableTableModel tmodel = new TableTableModel(20);
	void delInfo(JTable table)
	{
		int number = 0;// 记录当前选中的行号,列表中的员工号和姓名应为空
		number = table.getSelectedRow();
		// System.out.println("sid="+number);
		if (number < 0) {
			return;
		} 
		else 
		{
			try {
				Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
				String url = "jdbc:odbc:Password";
				Connection conn = DriverManager.getConnection(url, "", "");
				Statement stmt = conn.createStatement();
				String sid;
				sid = (String) table.getValueAt(number, 1);// 获得当前选中的员工列表中的员工号
					ResultSet rs = stmt.executeQuery("select * from Change where Sid='"+ sid + "'");// 基本资料数据库查询
					if (!rs.next())// 没有查询结果,则需要在数据库中新增界面上的信息
					{
						return;
					} 
					else 
					{
						stmt.executeUpdate("delete from Change where Sid='"
										+ sid + "'");
						tmodel.removeRow(number);
						table.updateUI();

					}
					stmt.close();
					conn.close();

				} catch (Exception ex) {
					ex.printStackTrace();
					JOptionPane.showMessageDialog(this, "删除失败","提示",JOptionPane.ERROR_MESSAGE);
				}

			}
	}
	void saveInfo(JTable table)
	{
		int number = 0;// 记录当前选中的行号,列表中的员工号和姓名应为空
		number = table.getSelectedRow();
		// System.out.println("sid="+number);
		if (number < 0) {
			return;
		} 
		else
		{
			try {
				Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
				String url = "jdbc:odbc:Password";
				Connection conn = DriverManager.getConnection(url, "", "");
				Statement stmt = conn.createStatement();
				String sid;
				sid = (String) table.getValueAt(number, 1);// 获得当前选中的员工列表中的员工号
				ResultSet rs1 = stmt.executeQuery("select * from Change where Sid='"
						+ stano.getText() + "'");
				if(rs1.next() && sid.equals(""))
				{
					JOptionPane.showMessageDialog(this,"您输入的员工号已经存在!","提示",JOptionPane.ERROR_MESSAGE);
					return;
				}
				ResultSet rs = stmt
						.executeQuery("select * from Change where Sid='"
								+ sid + "'");// 基本资料数据库查询
				if(!rs.next())// 没有查询结果,则需要在数据库中新增界面上的信息
				{
					System.out.println("需要插入新行");
					String str;
					str="insert into Change";
					str=str+"(";
					str=str+"Sid,"+"Sdep,"+"Ddep,"+"Cdate,"+"Reason";
					str=str+")"+"values(";
					str=str+"'"+stano.getText()+"',";
					str=str+"'"+eDep.getText()+"',";
					str=str+"'"+nDep.getText()+"',";
					str=str+"'"+changeTime.getText()+"',";
					str=str+"'"+changeReason.getText()+"'";
					str=str+")";
					stmt.executeUpdate(str);
					//tmodel.addRow("", "");
					//table.updateUI();
					table.setValueAt(stano.getText(), number, 1);
					table.setValueAt(eDep.getText(), number, 2);
					table.setValueAt(nDep.getText(), number, 3);
					table.setValueAt(changeTime.getText(), number, 4);
					table.setValueAt(changeReason.getText(), number, 5);
					System.out.println("number="+number);
					table.updateUI();	
				}
				else// 修改新输入的内容
				{
					stmt.executeUpdate("update Change SET Sid='"
							+ stano.getText() + "',Sdep='"
							+ eDep.getText() + "',Ddep='"
							+ nDep.getText() + "',Cdate='"
							+ changeTime.getText() + "',Reason='"
							+ changeReason.getText() + "' WHERE Sid='"
							+ sid + "'");
					//tmodel.setValueAt(Stano.getText(), number, 1);
					//table = new JTable(tmodel);
					table.setValueAt(stano.getText(), number, 1);
					table.setValueAt(eDep.getText(), number, 2);
					table.setValueAt(nDep.getText(), number, 3);
					table.setValueAt(changeTime.getText(), number, 4);
					table.setValueAt(changeReason.getText(), number, 5);
					System.out.println("number="+number);
					table.updateUI();	
					stmt.close();
					conn.close();
				}
			} catch (Exception ex) {
				ex.printStackTrace();
				JOptionPane.showMessageDialog(this, ex.toString());
			}
		}
	}
	/**
	 * Launch the application
	 * @param args
	 */
	public static void main(String args[]) {
		try {
			ChangeDlg dialog = new ChangeDlg();
			dialog.addWindowListener(new WindowAdapter() {
				public void windowClosing(WindowEvent e) {
					System.exit(0);
				}
			});
			dialog.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Create the dialog
	 */
	public ChangeDlg() {
		super();
		setTitle("人事变更管理");
		setBounds(100, 100, 599, 408);

		final JPanel panel = new JPanel();
		panel.setLayout(null);
		getContentPane().add(panel, BorderLayout.CENTER);

		final JScrollPane scrollPane;
		//= new JScrollPane();
		

		table = new JTable(tmodel);
		table.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent arg0) {
				int number = 0;// 记录当前选中的行号,列表中的员工号和姓名应为空
				number = table.getSelectedRow();
			//	String sid = (String) table.getValueAt(number, 1);// 获得当前选中的员工列表中的员工号
				stano.setText( table.getValueAt(number, 1)+"");
				eDep.setText( table.getValueAt(number, 2)+"");
				nDep.setText( table.getValueAt(number, 3)+"");
				changeTime.setText( table.getValueAt(number, 4)+"");
				changeReason.setText( table.getValueAt(number, 5)+"");
			}
		});
		try {
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			String url = "jdbc:odbc:Password";
			Connection conn = DriverManager.getConnection(url, "", "");
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("select Sid,Sdep,Ddep,Cdate,Reason from Change ");// 基本资料数据库查询
			//System.out.println("Stano=",rs)
			while(rs.next())
			{
				tmodel.addRow(rs.getString("Sid"), rs.getString("Sdep"),rs.getString("Ddep"),rs.getString("Cdate"),rs.getString("Reason"));
			}
		} catch (Exception ex) {
			JOptionPane.showMessageDialog(this, ex.toString());
		}

		
		table.setBackground(new Color(128, 128, 255));
		// table.setModel(tmodel);
		// table.setCellEditor(null);
		table.updateUI();
		scrollPane = new JScrollPane(table);
		scrollPane.setBounds(10, 0, 565, 215);
		panel.add(scrollPane);
		
		final JPanel panel_1 = new JPanel();
		panel_1.setLayout(new FormLayout(
			new ColumnSpec[] {
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				new ColumnSpec("55dlu"),
				FormFactory.RELATED_GAP_COLSPEC,
				new ColumnSpec("3dlu"),
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				new ColumnSpec("49dlu"),
				FormFactory.RELATED_GAP_COLSPEC,
				new ColumnSpec("7dlu"),
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				new ColumnSpec("49dlu")},
			new RowSpec[] {
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC}));
		panel_1.setBounds(10, 221, 571, 92);
		panel.add(panel_1);

		final JLabel label = new JLabel();
		label.setText("员工号:");
		panel_1.add(label, new CellConstraints());

		stano = new JTextField();
		panel_1.add(stano, new CellConstraints(3, 1));

		final JLabel label_1 = new JLabel();
		label_1.setText("原部门:");
		panel_1.add(label_1, new CellConstraints(7, 1));

		eDep = new JTextField();
		panel_1.add(eDep, new CellConstraints(9, 1));

		final JLabel label_2 = new JLabel();
		label_2.setText("新部门:");
		panel_1.add(label_2, new CellConstraints(13, 1));

		nDep = new JTextField();
		panel_1.add(nDep, new CellConstraints(15, 1));

		final JLabel label_3 = new JLabel();
		label_3.setText("变更时间:");
		panel_1.add(label_3, new CellConstraints(1, 3));

		changeTime = new JTextField();
		panel_1.add(changeTime, new CellConstraints(3, 3));

		final JLabel label_4 = new JLabel();
		label_4.setText("变更原因:");
		panel_1.add(label_4, new CellConstraints(7, 3));

		changeReason = new JTextField();
		panel_1.add(changeReason, new CellConstraints(9, 3, 7, 1, CellConstraints.FILL, CellConstraints.DEFAULT));

		final JButton addBt = new JButton();
		addBt.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			tmodel.addRow("", "", "", "", "");
			table.updateUI();
			}
		});
		addBt.setText("添加");
		addBt.setBounds(56, 319, 99, 23);
		panel.add(addBt);

		final JButton saveBt = new JButton();
		saveBt.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				saveInfo(table);
				
			}
		});
		saveBt.setText("保存");
		saveBt.setBounds(175, 319, 99, 23);
		panel.add(saveBt);

		final JButton delBt = new JButton();
		delBt.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				delInfo(table);
			}
		});
		delBt.setText("删除");
		delBt.setBounds(294, 319, 99, 23);
		panel.add(delBt);

		final JButton exitBt = new JButton();
		exitBt.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				dispose();
			}
		});
		exitBt.setText("退出");
		exitBt.setBounds(411, 319, 99, 23);
		panel.add(exitBt);
		//
	}

}

⌨️ 快捷键说明

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