📄 renshiguanlixitong.txt
字号:
package pmis;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.sql.*;
import java.util.*;
import com.borland.jbcl.layout.*;
import java.beans.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
public class MainFrm extends JFrame
{
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JSplitPane jSplitPane1 = new JSplitPane();
JPanel jPanel1 = new JPanel();
XYLayout xYLayout1 = new XYLayout();
JLabel jLabel1 = new JLabel();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
JButton jButton5 = new JButton();
JComboBox jComboBox1 = new JComboBox();
JTextField jTextField1 = new JTextField();
JScrollPane jScrollPane1 = new JScrollPane();
JTable jTable1 = new JTable(new MyTableModel());
Connection con;
Statement stmt;
Vector columnData=new Vector();
Vector rowData=new Vector();
//构造窗体
public MainFrm()
{
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try
{
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
//初始化窗体中的部件
private void jbInit() throws Exception
{
setIconImage(Toolkit.getDefaultToolkit().createImage(MainFrm.
//class.getResource("[Your Icon]")));
contentPane = (JPanel) this.getContentPane()));
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(500,345));
//设置窗体标题
this.setTitle("人事管理系统");
//设置窗体布局
jPanel1.setLayout(xYLayout1);
jLabel1.setText("搜索项");
jButton1.setText("搜索");
jButton1.setToolTipText("搜索资料");
//添加action事件监听器
jButton1.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jButton1_actionPerformed(e);
}
});
jButton2.setText("全部显示");
jButton2.setToolTipText("显示数据库中所有资料");
jButton2.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jButton2_actionPerformed(e);
}
});
jButton3.setToolTipText("增加资料");
jButton3.setText("增加");
jButton3.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jButton3_actionPerformed(e);
}
});
jButton4.setText("删除");
jButton4.setEnabled(false);
jButton4.setToolTipText("删除资料");
jButton4.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jButton4_actionPerformed(e);
}
});
jButton5.setText("修改");
jButton5.setEnabled(false);
jButton5.setToolTipText("修改资料");
jButton5.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jButton5_actionPerformed(e);
}
});
contentPane.add(jSplitPane1, BorderLayout.CENTER);
jSplitPane1.add(jPanel1, JSplitPane.LEFT);
jPanel1.add(jButton1, new XYConstraints(10, 87, 84, -1));
jPanel1.add(jButton2, new XYConstraints(10, 128, -1, -1));
jPanel1.add(jButton3, new XYConstraints(10, 171, 84, -1));
jPanel1.add(jButton4, new XYConstraints(10, 211, 84, -1));
jPanel1.add(jButton5, new XYConstraints(10, 252, 84, -1));
jPanel1.add(jTextField1, new XYConstraints(9, 59, 84, -1));
jPanel1.add(jLabel1, new XYConstraints(10, 5, 59, 20));
jPanel1.add(jComboBox1, new XYConstraints(10, 27, 84, -1));
jSplitPane1.add(jScrollPane1, JSplitPane.RIGHT);
jScrollPane1.getViewport().add(jTable1, null);
jSplitPane1.setDividerLocation(103);
jComboBox1.addItem("姓名");
jComboBox1.addItem("性别");
jComboBox1.addItem("年龄");
jComboBox1.addItem("电话");
jComboBox1.addItem("地址");
jComboBox1.addItem("备注");
//设置表的列名
columnData.addElement("姓名");
columnData.addElement("性别");
columnData.addElement("年龄");
columnData.addElement("电话");
columnData.addElement("地址");
columnData.addElement("备注");
DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
model.setDataVector(rowData,columnData);
TableColumn column;
//设置列的宽度
column=jTable1.getColumn("姓名");
column.setMinWidth(60);
column=jTable1.getColumn("性别");
column.setMinWidth(40);
column=jTable1.getColumn("年龄");
column.setMinWidth(40);
column=jTable1.getColumn("电话");
column.setMinWidth(60);
column=jTable1.getColumn("地址");
column.setMinWidth(80);
column=jTable1.getColumn("备注");
column.setMinWidth(100);
//添加ListSelection事件监听器
jTable1.getSelectionModel().addListSelectionListener(new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e)
{
if (jTable1.getSelectedRow()!=-1)
{
jButton4.setEnabled(true);
jButton5.setEnabled(true);
}
}
});
//定义URL
String url="jdbc:odbc:Person";
//装入驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//建立连接
con=DriverManager.getConnection(url);
//创建语句
stmt=con.createStatement();
String sql="SELECT * FROM Person";
update(sql);
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e)
{
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING)
{
System.exit(0);
}
}
//获取满足条件的记录
void jButton1_actionPerformed(ActionEvent e)
{
int n=jComboBox1.getSelectedIndex();
String value=jTextField1.getText().trim();
//获取字段名称
String columnName=getColumnName(n);
String sql;
if (columnName!=null)
{
if (n!=2)
{
//字符型字段的查询
sql="SELECT * FROM Person WHERE "+columnName+"='"+value+"'";
}
else
{
try
{
int age=Integer.parseInt(value);
//整型字段的查询
sql="SELECT * FROM Person WHERE "+columnName+"="+age;
}
catch (NumberFormatException ev)
{
System.out.println("年龄只能为数字");
return;
}
}
update(sql);
jButton4.setEnabled(false);
jButton5.setEnabled(false);
}
else
{
return;
}
}
//获取数据库中的所有记录
void jButton2_actionPerformed(ActionEvent e)
{
String sql="SELECT * FROM Person";
update(sql);
jButton4.setEnabled(false);
jButton5.setEnabled(false);
}
//添加记录
void jButton3_actionPerformed(ActionEvent e)
{
InputDlg dlg=new InputDlg(this,"添加记录",true);
int x=getX()+getWidth()/2-dlg.getWidth()/2;
int y=getY()+getHeight()/2-dlg.getHeight()/2;
dlg.setLocation(x,y);
//显示对话框接收数据
dlg.show();
}
//删除记录
void jButton4_actionPerformed(ActionEvent e)
{
int n=jTable1.getSelectedRow();
String name=(String)jTable1.getValueAt(n,0);
String sql="DELETE FROM Person WHERE name='"+name+"'";
try
{
//执行删除语句
stmt.executeUpdate(sql);
}
catch (SQLException ev)
{
System.out.println(ev.getMessage());
}
DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
//更新表中数据
model.removeRow(n);
jButton4.setEnabled(false);
jButton5.setEnabled(false);
}
//修改记录
void jButton5_actionPerformed(ActionEvent e)
{
String data[]=new String[6];
int r=jTable1.getSelectedRow();
for (int i=0;i<6;i++)
{
//获取表中当前行的列数据
data[i]=(String)jTable1.getValueAt(r,i);
}
InputDlg dlg=new InputDlg(this,"修改记录",true,data);
int x=getX()+getWidth()/2-dlg.getWidth()/2;
int y=getY()+getHeight()/2-dlg.getHeight()/2;
dlg.setLocation(x,y);
//显示对话框接收数据
dlg.show();
}
//获取数据库中的字段名称
String getColumnName(int index)
{
if (index==0)
{
return "name";
}
else if (index==1)
{
return "sex";
}
else if (index==2)
{
return "age";
}
else if (index==3)
{
return "phone";
}
else if (index==4)
{
return "address";
}
else if (index==5)
{
return "remark";
}
else
{
return null;
}
}
void addRecord (String data[])
{
//生成SQL语句
String sql="INSERT INTO Person VALUES('"+data[0]+"'";
for (int i=1;i<6;i++)
{
sql+=",'"+data[i]+"'";
}
sql+=")";
try
{
//执行增加语句
stmt.executeUpdate(sql);
}
catch (SQLException e)
{
System.out.println(e.getMessage());
return;
}
DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
if (data[2]=="0")
data[2]="";
//更新表中数据
model.addRow(data);
}
void editRecord (String data[])
{
//生成SQL语句
String sql="UPDATE Person SET sex='"+data[1]+"'";
sql+=",age="+Integer.parseInt(data[2]);
sql+=",phone='"+data[3]+"'";
sql+=",address='"+data[4]+"'";
sql+=",remark='"+data[5]+"'";
sql+=" WHERE name='"+data[0]+"'";
try
{
//执行更新语句
stmt.executeUpdate(sql);
}
catch (SQLException e)
{
System.out.println(e.getMessage());
return;
}
int n=jTable1.getSelectedRow();
if (data[2]=="0")
data[2]="";
//更新表中数据
for (int i=1;i<6;i++)
{
jTable1.setValueAt(data[i],n,i);
}
}
void update(String sql)
{
DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
int count=jTable1.getRowCount();
//移除表中的所有数据
for (int i=0;i<count;i++)
{
model.removeRow(0);
}
try
{
//执行查询语句
ResultSet rs=stmt.executeQuery(sql);
//更新表中的数据
while (rs.next())
{
String name=rs.getString(1).trim();
String sex=rs.getString(2).trim();
String age=String.valueOf(rs.getInt(3));
if (age=="0")
age="";
String phone=rs.getString(4).trim();
String addr=rs.getString(5).trim();
String remark=rs.getString(6).trim();
String row[]={name,sex,age,phone,addr,remark};
model.addRow(row);
}
}
catch (SQLException ev)
{
System.out.println(ev.getMessage());
}
}
class MyTableModel extends DefaultTableModel
{
//使表中的内容不能被修改
public boolean isCellEditable(int r,int c)
{
return false;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -