package tushuguanli;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;
import java.util.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeSelectionModel;
import javax.swing.ButtonGroup;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Yhxxxgysc {
/**
* @param args
*/
public static void main(String[] args)
{
Yhxxxgysc_1 frame=new Yhxxxgysc_1();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class Yhxxxgysc_1 extends JFrame
{
private static final int AUTO_RESIZE_OFF=0;
Yhxxxgysc_1()
{
setTitle("用户信息修改与删除");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screenSize = tk.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
setSize(screenWidth, screenHeight);
Container contentPane = getContentPane();
setLocationRelativeTo(null);
contentPane.setLayout(null);
myTable=new DefaultTableModel();
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:sqlserver://localhost:53104;DatabaseName=tushuguan;",
"sa", "123");
stmt=conn.createStatement();
rs=stmt.executeQuery("select * from yhxx");//xx为自己建的表的名称
ResultSetMetaData metaData;
metaData = rs.getMetaData();
number=metaData.getColumnCount();
columnNames=new Vector<String>();
rows=new Vector<Vector<Object>>();
for(int num=0;num<number;num++)
{
columnNames.addElement(metaData.getColumnLabel(num+1));
}
while(rs.next())
{
Vector<Object> newRow = new Vector<Object>();
for (int i = 1; i <= number; i++)
{
newRow.addElement(rs.getObject(i));
}
rows.addElement(newRow);
myTable=new DefaultTableModel(rows,columnNames);//(vector,vector)
}
}
catch (ClassNotFoundException ex)
{
System.err.println("Cannot find the database driver classes.");
System.err.println(ex);
}
catch (SQLException ex)
{
System.err.println("Cannot connect to this database.");
System.err.println(ex);
}
table=new JTable(myTable);
getContentPane().setLayout(null);
JPanel myPanel1=new JPanel();
myPanel1.add(table);
JScrollPane s = new JScrollPane(table);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
s.setBounds(2,10,800,200);
getContentPane().add(s);
JButton btnAdd = new JButton("添加"); //添加按钮
JButton btnDelete = new JButton("删除"); //删除按钮
JButton btnUpdate = new JButton("修改"); //修改按钮
JLabel lb1=new JLabel("用户编号:");
lb1.setBounds(50, 250, 65, 20);
contentPane.add(lb1);
JLabel lb2=new JLabel("用户姓名:");
lb2.setBounds(50, 280, 65, 20);
contentPane.add(lb2);
JLabel lb3=new JLabel("性 别:");
lb3.setBounds(50, 310, 65, 20);
contentPane.add(lb3);
JLabel lb4=new JLabel("年 龄:");
lb4.setBounds(50, 340, 65, 20);
contentPane.add(lb4);
JLabel lb5=new JLabel("押 金:");
lb5.setBounds(50, 370, 65, 20);
contentPane.add(lb5);
JLabel lb6=new JLabel("办理日期:");
lb6.setBounds(50, 400, 65, 20);
contentPane.add(lb6);
JLabel lb7=new JLabel("联系电话:");
lb7.setBounds(50, 430, 65, 20);
contentPane.add(lb7);
JLabel lb8=new JLabel("密 码:");
lb8.setBounds(50, 460, 65, 20);
contentPane.add(lb8);
txt1 = new JTextField();
txt1.setBounds(150,250,100,20);
contentPane.add(txt1);
txt2 = new JTextField();
txt2.setBounds(150,280,100,20);
contentPane.add(txt2);
txt3 = new JTextField();
txt3.setBounds(150,340,100,20);
contentPane.add(txt3);
txt4 = new JTextField();
txt4.setBounds(150,370,100,20);
contentPane.add(txt4);
txt5 = new JTextField();
txt5.setBounds(150,400,100,20);
contentPane.add(txt5);
txt6 = new JTextField();
txt6.setBounds(150,430,100,20);
contentPane.add(txt6);
txt7 = new JTextField();
txt7.setBounds(150,460,100,20);
contentPane.add(txt7);
ch= new CheckboxGroup();
maleCh= new Checkbox("男",true,ch);
femaleCh= new Checkbox("女",false,ch);
maleCh.setBounds(160,310,40,20);
femaleCh.setBounds(220,310,40,20);
contentPane.add(maleCh);
contentPane.add(femaleCh);
btnAdd.setBounds(100,500,60,20);
contentPane.add(btnAdd);
btnDelete.setBounds(180,500,60,20);
contentPane.add(btnDelete);
btnUpdate.setBounds(260,500,60,20);
contentPane.add(btnUpdate);
btnAdd.addActionListener(new Listeneradd() );
btnDelete.addActionListener(new Listenerdel() );
btnUpdate.addActionListener(new Listenerupd() );
table.addMouseListener(new newMouseAdapter());
this.repaint();
}
private class newMouseAdapter
extends MouseAdapter {
public void mouseClicked(MouseEvent me) {
// 获得当前选择行号(第一行行号为0)
int rowNumber = table.getSelectedRow();
// 设置对应输入为选中行的内容
txt1.setText(table.getValueAt(rowNumber, 0).toString().trim());
txt2.setText(table.getValueAt(rowNumber, 1).toString().trim());
if(table.getValueAt(rowNumber, 2).toString().trim().equals("男"))
{
ch.setSelectedCheckbox(maleCh);
}
else
{
ch.setSelectedCheckbox(femaleCh);
}
txt3.setText(table.getValueAt(rowNumber, 3).toString().trim());
txt4.setText(table.getValueAt(rowNumber, 4).toString().trim());
txt5.setText(table.getValueAt(rowNumber, 5).toString().trim());
txt6.setText(table.getValueAt(rowNumber, 6).toString().trim());
txt7.setText(table.getValueAt(rowNumber, 7).toString().trim());
}
}
//实现事件监听器
private class Listeneradd
implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String xb;
if(ch.getSelectedCheckbox()==maleCh)
{
xb="男";
}
else
{
xb="女";
}
try{
String r1 = "insert into yhxx values('"+txt1.getText().trim()+"','"+txt2.getText().trim()+"','"+xb+"','"+txt3.getText().trim()+"','" +
""+txt4.getText().trim()+ "','"+txt5.getText().trim()+"','"+txt6.getText().trim()+"','"+txt7.getText().trim()+"')";
stmt.executeUpdate(r1);
gengxing();
}catch (SQLException e) {
System.out.println("SQLException: " + e.getMessage());
}
}
}
//实现事件监听器
private class Listenerdel
implements ActionListener
{
public void actionPerformed(ActionEvent event)
{ try{
String sql="delete from yhxx where 用户编号='"+txt1.getText().trim()+"'";
stmt.executeUpdate(sql);
gengxing();
}catch (SQLException e) {
System.out.println("SQLException: " + e.getMessage());
}
}
}
//实现事件监听器
private class Listenerupd
implements ActionListener
{
public void actionPerformed(ActionEvent event)
{ try{
String xxb;
if(ch.getSelectedCheckbox()==maleCh)
{
xxb="男";
}
else
{
xxb="女";
}
String sql="update yhxx set 用户姓名='"+txt2.getText().trim()+"',性别='"+xxb+"',押金='"+txt4.getText().trim()+"',联系电话='"+txt6.getText().trim()+"',密码='"+txt7.getText().trim()+"',年龄='"+
txt3.getText().trim()+"' where 用户编号='"+txt1.getText().trim()+"'";
stmt.executeUpdate(sql);
gengxing();
}catch (SQLException e) {
System.out.println("SQLException: " + e.getMessage());
}
}
}
public void gengxing()
{try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:sqlserver://localhost:53104;DatabaseName=tushuguan;",
"sa", "123");//获得连接对象
stmt=conn.createStatement();
rs1=stmt.executeQuery("select * from yhxx");
ResultSetMetaData metaData;
metaData = rs1.getMetaData();
number=metaData.getColumnCount();
columnNames=new Vector<String>();
rows=new Vector<Vector<Object>>();
for(int num=0;num<number;num++)
{
columnNames.addElement(metaData.getColumnLabel(num+1));
}
while(rs1.next())
{
Vector<Object> newRow = new Vector<Object>();
for (int i = 1; i <= number; i++) {
newRow.addElement(rs1.getObject(i));
}
rows.addElement(newRow);
myTable=new DefaultTableModel(rows,columnNames);//(vector,vector)
((DefaultTableModel) table.getModel()).setDataVector(rows,columnNames);
}
}
catch (ClassNotFoundException ex) {
System.err.println("Cannot find the database driver classes.");
System.err.println(ex);
}
catch (SQLException ex) {
System.err.println("Cannot connect to this database.");
System.err.println(ex);
}}
private JTextField txt1;
private JTextField txt2;
private JTextField txt3;
private JTextField txt4;
private JTextField txt5;
private JTextField txt6;
private JTextField txt7;
private CheckboxGroup ch;
private Checkbox maleCh;
private Checkbox femaleCh;
private Connection conn;
private Statement stmt;
private ResultSet rs,rs1;
private int number;
private Vector<Vector<Object>> rows;
private JTable table;
private Vector<String> columnNames;
private TableModel myTable;
}