java stumodel_JAVA入门到精通-第72讲-学生管理系统4-model 2模式(1)

/**

* 完成一个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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值