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