/**
* 完成一个mini版本的学生管理系统(MODEL2模式)
* 1、查询任务
* 2、添加功能
*/
package com.student2;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
public class JTable_Test3 extends JFrame implements ActionListener{
//定义组件
JPanel jp1,jp2;
JLabel jl1;
JButton jb1,jb2,jb3,jb4;
JTable jt;
JScrollPane jsp;
JTextField jtf;
StuModel sm;
public static void main(String[] args) {
try {
// 将当前窗体外观设置为所在操作系统的外观
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
new JTable_Test3();
}
//构造函数
public JTable_Test3(){
jp1=new JPanel();
jtf=new JTextField(10);
jb1=new JButton("查询");
jb1.addActionListener(this);
jl1=new JLabel("请输入名字");
//把各个空间加入列
jp1.add(jl1);
jp1.add(jtf);
jp1.add(jb1);
jp2=new JPanel();
jb2=new JButton("添加");
jb2.addActionListener(this);
jb3=new JButton("修改");
jb3.addActionListener(this);
jb4=new JButton("删除");
jb4.addActionListener(this);
//把各个按钮加入到jp2中
jp2.add(jb2);
jp2.add(jb3);
jp2.add(jb4);
//创建一个数据模型对象
sm=new StuModel();
//初始化JTable
jt=new JTable(sm);
//初始化jsp JScrollPane
jsp=new JScrollPane(jt);
//把jsp放入到jframe
this.add(jsp);
this.add(jp1,"North");
this.add(jp2,"South");
this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb1){
//因为把对表的数据封装到StuModel中,我们就可以比较简单的完成查询
String name=this.jtf.getText();
//写一个SQL语句
String sql="select * from stu where stuName='"+name+"'";
//构建新的数据模型类,并更新
sm=new StuModel(sql);
//更新JTable
jt.setModel(sm);
}
//用户点击添加时
else if(e.getSource()==jb2){
StuAddDialog sa=new StuAddDialog(this, "添加学生", true);
//重新再获得新的数据模型
//构建新的数据模型类,并更新
sm=new StuModel();
//更新JTable
jt.setModel(sm);
}
//用户修改数据
else if(e.getSource()==jb3){
int rowNum=this.jt.getSelectedRow();
if(rowNum==-1){
//提示
JOptionPane.showMessageDialog(this, "请选择一行", "提示", JOptionPane.INFORMATION_MESSAGE);
return;
}
//显示修改对话框
new StuUpdDialog(this,"修改学生信息",true,sm,rowNum);
//更新数据模型
sm=new StuModel();
//更新JTable
jt.setModel(sm);
}
//用户点击删除时,删除一条选中的数据
else if(e.getSource()==jb4){
//1、得到学生的ID号
//getSelectedRow会返回用户点中的行
//如果该用户一行都没有选择,就会返回-1
int rowNum=this.jt.getSelectedRow();
if(rowNum==-1){
//提示
JOptionPane.showMessageDialog(this, "请选择一行", "提示", JOptionPane.INFORMATION_MESSAGE);
return;
}
//得到学生编号
String stuId=(String)sm.getValueAt(rowNum, 0);
//创建一个sql语句
String sql="delete from stu where stuid=?";
String []paras={stuId};
StuModel temp=new StuModel();
if(temp.updStu(sql, paras)){
JOptionPane.showMessageDialog(this,"删除数据成功","删除数据提示",JOptionPane.INFORMATION_MESSAGE);
}else{
JOptionPane.showMessageDialog(this,"删除数据失败","删除数据提示",JOptionPane.ERROR_MESSAGE);
}
//更新数据模型
sm=new StuModel();
//更新JTable
jt.setModel(sm);
}
}
}
156
156
1/**
2* 完成一个mini版本的学生管理系统(MODEL2模式)
3* 1、查询任务
4* 2、添加功能
5*/
6package com.student2;
7
8import java.awt.event.ActionEvent;
9import java.awt.event.ActionListener;
10import java.sql.Connection;
11import java.sql.DriverManager;
12import java.sql.PreparedStatement;
13import java.sql.ResultSet;
14import java.sql.SQLException;
15import java.util.Vector;
16import javax.swing.*;
17import javax.swing.table.AbstractTableModel;
18
19public class JTable_Test3 extends JFrame implements ActionListener{
20//定义组件
21JPanel jp1,jp2;
22JLabel jl1;
23JButton jb1,jb2,jb3,jb4;
24JTable jt;
25JScrollPane jsp;
26JTextField jtf;
27StuModel sm;
28
29public static void main(String[] args) {
30try {
31// 将当前窗体外观设置为所在操作系统的外观
32UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
33} catch (ClassNotFoundException e) {
34e.printStackTrace();
35} catch (InstantiationException e) {
36e.printStackTrace();
37} catch (IllegalAccessException e) {
38e.printStackTrace();
39} catch (UnsupportedLookAndFeelException e) {
40e.printStackTrace();
41}
42new JTable_Test3();
43}
44
45//构造函数
46public JTable_Test3(){
47jp1=new JPanel();
48jtf=new JTextField(10);
49jb1=new JButton("查询");
50jb1.addActionListener(this);
51jl1=new JLabel("请输入名字");
52
53//把各个空间加入列
54jp1.add(jl1);
55jp1.add(jtf);
56jp1.add(jb1);
57jp2=new JPanel();
58jb2=new JButton("添加");
59jb2.addActionListener(this);
60jb3=new JButton("修改");
61jb3.addActionListener(this);
62jb4=new JButton("删除");
63jb4.addActionListener(this);
64
65//把各个按钮加入到jp2中
66jp2.add(jb2);
67jp2.add(jb3);
68jp2.add(jb4);
69
70//创建一个数据模型对象
71sm=new StuModel();
72
73//初始化JTable
74jt=new JTable(sm);
75
76//初始化jsp JScrollPane
77jsp=new JScrollPane(jt);
78
79//把jsp放入到jframe
80this.add(jsp);
81this.add(jp1,"North");
82this.add(jp2,"South");
83
84this.setSize(400, 300);
85this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
86this.setVisible(true);
87}
88
89public void actionPerformed(ActionEvent e) {
90if(e.getSource()==jb1){
91//因为把对表的数据封装到StuModel中,我们就可以比较简单的完成查询
92String name=this.jtf.getText();
93//写一个SQL语句
94String sql="select * from stu where stuName='"+name+"'";
95//构建新的数据模型类,并更新
96sm=new StuModel(sql);
97//更新JTable
98jt.setModel(sm);
99}
100//用户点击添加时
101else if(e.getSource()==jb2){
102StuAddDialog sa=new StuAddDialog(this, "添加学生", true);
103//重新再获得新的数据模型
104//构建新的数据模型类,并更新
105sm=new StuModel();
106//更新JTable
107jt.setModel(sm);
108}
109//用户修改数据
110else if(e.getSource()==jb3){
111int rowNum=this.jt.getSelectedRow();
112if(rowNum==-1){
113//提示
114JOptionPane.showMessageDialog(this, "请选择一行", "提示", JOptionPane.INFORMATION_MESSAGE);
115return;
116}
117
118//显示修改对话框
119new StuUpdDialog(this,"修改学生信息",true,sm,rowNum);
120
121//更新数据模型
122sm=new StuModel();
123//更新JTable
124jt.setModel(sm);
125}
126
127//用户点击删除时,删除一条选中的数据
128else if(e.getSource()==jb4){
129//1、得到学生的ID号
130//getSelectedRow会返回用户点中的行
131//如果该用户一行都没有选择,就会返回-1
132int rowNum=this.jt.getSelectedRow();
133if(rowNum==-1){
134//提示
135JOptionPane.showMessageDialog(this, "请选择一行", "提示", JOptionPane.INFORMATION_MESSAGE);
136return;
137}
138//得到学生编号
139String stuId=(String)sm.getValueAt(rowNum, 0);
140//创建一个sql语句
141String sql="delete from stu where stuid=?";
142String []paras={stuId};
143StuModel temp=new StuModel();
144if(temp.updStu(sql, paras)){
145JOptionPane.showMessageDialog(this,"删除数据成功","删除数据提示",JOptionPane.INFORMATION_MESSAGE);
146}else{
147JOptionPane.showMessageDialog(this,"删除数据失败","删除数据提示",JOptionPane.ERROR_MESSAGE);
148}
149
150//更新数据模型
151sm=new StuModel();
152//更新JTable
153jt.setModel(sm);
154}
155}
156}