功能如图
注意写这个程序是为了准备考试(只有2h时间)尽量快完成所以功能,不体现面向对象,不考虑鲁棒性
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.util.Vector;
import java.sql.*;
import javax.swing.JTable;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
import org.omg.PortableInterceptor.ACTIVE;
import com.hxtt.global.s;
class GuiDemo {
JFrame frame;
JButton addButton,setButton,delButton,qryButton,showButton;
JLabel idJLabel,nameJLabel,dateJLabel;
JTextField nameField,idTextField,dateTextField;
JRadioButton menRButton,womenRButton;
JTable jTable;
DefaultTableModel dtm;
JPanel panel1,panel2,panel3;
JScrollPane scrollPane;
Connection conn;
Statement stmt;
ResultSet rs;
Vector<String> rowVector;
Vector<Vector<String>> dataVector;
public GuiDemo() throws Exception {
// TODO Auto-generated constructor stub
frame = new JFrame();
Class.forName("com.hxtt.sql.access.AccessDriver");
String url = "jdbc:Access:///C:/Users/student.accdb";
conn = DriverManager.getConnection(url,"","");
stmt = conn.createStatement();
rowVector = new Vector<String>();
rowVector.add("学号");
rowVector.add("姓名");
rowVector.add("性别");
rowVector.add("出生日期");
dtm = new DefaultTableModel();
rs = stmt.executeQuery("select * from 学生表");
showRs(rs);
jTable = new JTable(dtm);
jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scrollPane = new JScrollPane(jTable);
frame.add(scrollPane,BorderLayout.CENTER);
/////////////////
idJLabel = new JLabel("学号");
idTextField = new JTextField(5);
nameJLabel = new JLabel("姓名");
nameField = new JTextField(5);
menRButton = new JRadioButton("男");
womenRButton = new JRadioButton("女");
ButtonGroup bGroup = new ButtonGroup();
bGroup.add(menRButton);
bGroup.add(womenRButton);
dateJLabel = new JLabel("出生日期");
dateTextField = new JTextField(5);
panel1 = new JPanel();
panel1.setLayout(new GridLayout(2,1));
panel2=new JPanel();
panel2.setLayout(new FlowLayout());
panel2.add(idJLabel);
panel2.add(idTextField);
panel2.add(nameJLabel);
panel2.add(nameField);
panel2.add(menRButton);
panel2.add(womenRButton);
panel2.add(dateJLabel);
panel2.add(dateTextField);
addButton = new JButton("添加");
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String sexString = menRButton.isSelected()?"男":"女";
Vector<String> row = new Vector<String>();
row.add(idTextField.getText());
row.add(nameField.getText());
row.add(sexString);
row.add(dateTextField.getText());
dtm.addRow(row);
String sqlString = "insert into 学生表 values ('"+idTextField.getText()+"','"+nameField.getText()+"','"+sexString+"','"+dateTextField.getText()+"')";
// System.out.println(sqlString);
try {
// connect();
stmt.executeUpdate(sqlString);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
setButton = new JButton("修改");
setButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String sexString = menRButton.isSelected()?"男":"女";
int rowInt = jTable.getSelectedRow();
if(idTextField.getText().equals("")) idTextField.setText(dtm.getValueAt(rowInt, 0).toString());
if(nameField.getText().equals("")) nameField.setText(dtm.getValueAt(rowInt, 1).toString());
if(dateTextField.getText().equals("")) dateTextField.setText(dtm.getValueAt(rowInt, 3).toString());
String sqlString = "update 学生表 set 学号='"+idTextField.getText()+"',姓名='"+nameField.getText()+"',性别='"+sexString+"',出生日期='"+dateTextField.getText()+"' where 学号="+dtm.getValueAt(rowInt, 0);
dtm.setValueAt(idTextField.getText(), rowInt, 0);
dtm.setValueAt(nameField.getText(), rowInt, 1);
dtm.setValueAt(sexString, rowInt, 2);
dtm.setValueAt(dateTextField.getText(), rowInt, 3);
System.out.println(""+rowInt+ sqlString);
try {
stmt.executeUpdate(sqlString);
} catch (SQLException e1) {
e1.printStackTrace();
}
}
});
delButton = new JButton("删除");
delButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
int rowInt = jTable.getSelectedRow();
String sql = "delete from 学生表 where 学号='"+jTable.getValueAt(rowInt, 0)+"'";
System.out.println(sql);
try {
stmt.executeUpdate(sql);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
dtm.removeRow(rowInt);
}
});
qryButton = new JButton("查询");
qryButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String sqlString = "";
if(!idTextField.getText().equals(""))
sqlString = "select * from 学生表 where 学号 = '" + idTextField.getText() +"'";
else if(!nameField.getText().equals(""))
sqlString = "select * from 学生表 where 姓名 = '" + nameField.getText() +"'";
else if(!dateTextField.getText().equals(""))
sqlString = "select * from 学生表 where 出生日期 = '" + dateTextField.getText() +"'";
else
sqlString = "select * from 学生表 where 性别 = '" + (menRButton.isSelected()?"男":"女") +"'";
try {
rs = stmt.executeQuery(sqlString);
showRs(rs);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
showButton = new JButton("显示全部");
showButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try {
rs = stmt.executeQuery("select * from 学生表");
showRs(rs);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
panel3=new JPanel();
//panel3.setLayout(new GridLayout(1,5));
panel3.add(addButton);
panel3.add(setButton);
panel3.add(delButton);
panel3.add(qryButton);
panel3.add(showButton);
panel1.add(panel2);
panel1.add(panel3);
frame.add(panel1,BorderLayout.SOUTH);
frame.setSize(450,400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void showRs(ResultSet rs) throws SQLException {
dataVector = new Vector<Vector<String>>();
while (rs.next()) {
Vector<String> tpVector = new Vector<String>();
for (int i = 1; i <= 4; i++)
tpVector.add(rs.getString(i));
dataVector.add(tpVector);
}
//System.out.println(dataVector.size());
dtm.setDataVector(dataVector, rowVector);
}
}
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
new GuiDemo();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}