实现内容:
更多Java定制app开发学习资源尽在B站账号:清风学Java
https://space.bilibili.com/591988762
只做Java分享,定制app开发欢迎个位小伙伴前来观看,定制app开发更多优质学习资源持续更新中…
定制app开发设计开发一个学生成绩管理系统
- 1
(1)定制app开发根据实现的功能,定制app开发划分出合理的对象类,定制app开发明确各个对象类之间的关系。为
定制app开发各个对象类设计正确的域和方法,定制app开发为每个方法设计合理的方法体。同时,定制app开发为对象类及内部的域和定制app开发方法运用正确的修饰符。
功能要求:
(1)录入成绩 (2) 查询成绩
(3) 成绩排序 (4) 修改成绩
(5) 删除成绩 (6) 定制app开发将数据保存在数据库表中
定制app开发该课程设计涉及MySQL数据库,建表操作,java操作(JDBC定制app开发数据库操作)以及JavaSwing定制app开发与事件处理。
源程序(仅做参考):
//**学生类**public class Student { String id; // 学号 String name; // 姓名 float math; //数学成绩 float physics; //物理成绩 float english; //英语成绩 public Student() {} public Student(String id, String name, float math, float physics, float english) { //定制app开发定义带参的构造函数 super(); //定制app开发调用父类的无参的构造函数 this.id = id; this.name = name; this.math = math; this.physics = physics; this.english = english; } //定制app开发定义一个方法设置个变量的值 public void set(String id,String name,float math,float physics,float english) { this.id = id; this.name = name; this.math = math; this.physics = physics; this.english = english; } public String getId() { //定制app开发定义一个方法获取学号 return id; } public String getName() { //定制app开发定义一个方法获取姓名 return name; } public float getMath() { //定制app开发定义一个方法获取数学成绩 return math; } public float getPhysics() { //定制app开发定义一个方法获取物理成绩 return physics; } public float getEnglish() { //定制app开发定义一个方法获取英语成绩 return english; } //重写toString方法 定制app开发使其输出指定的格式 @Override public String toString() { // TODO Auto-generated method stub return "[ 学号: "+id+" 姓名: "+name+" 数学成绩: "+math+" 物理成绩: "+physics+" 英语成绩: "+english+"]"; }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
//测试类import java.awt.BorderLayout;import javax.swing.JFrame;import javax.swing.JTabbedPane;class mySwing { JFrame frame; //定制app开发定义一个窗口 JTabbedPane tabbedPane; //定制app开发定义一个选项卡窗格 public void init() { //定制app开发定义一个方法来对选项定制app开发卡窗格进行操作 tabbedPane = new JTabbedPane(); //定制app开发实例化选项卡窗格 tabbedPane.add("录入成绩",new addPanel().panel); //定制app开发定制app开发定制app开发定制app开发定制app开发向选项卡窗格中添加”录入成绩“窗格 tabbedPane.add("查询成绩",new checkPanel().panel2); //向选项卡窗格中添加”查询成绩“窗格 tabbedPane.add("排序成绩",new sortPanel().panel3); //向选项卡窗格中添加”排序成绩“窗格 tabbedPane.add("修改成绩",new modifyPanel().panel4); //向选项卡窗格中添加”修改成绩“窗格 tabbedPane.add("删除记录",new deletePanel().panel5); //向选项卡窗格中添加”删除记录“窗格 } //定制app开发先创建一个窗口 public mySwing() { //定制app开发创建一个无参的构造方法由于初始化窗体 frame = new JFrame("XXX学校学生成绩管理系统"); //实例化窗口 init(); //调用init方法 frame.add(tabbedPane,BorderLayout.NORTH); //向窗口中添加选项卡窗格 frame.setVisible(true); //设置窗口可见 frame.setSize(500, 580); //设置窗口的大小 frame.setLocationRelativeTo(null); //设置窗口的位置为桌面中心 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置单击窗口的关闭按钮后程序自动停止运行 }}public class myText { public static void main(String[] args) { new mySwing(); //通过匿名对象调用 }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
//添加数据实现import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;public class addPanel{ MyDBUtil dbUtil = new MyDBUtil(); //创建自己写的数据库对象 JPanel panel; //定义一个面板引用 //录入成绩 窗口组件设置 JPanel p1,p2,p3,p4; //定义4个面板引用 Box boxH1,boxH2; //创建两个行式盒。 Box box1,box2,box3,box4; //创建四个列式盒 JButton button; //定义一个按钮 JTextField textField1,textField2,textField3,textField4,textField5; //定义五个单行文本框 JTextArea area; //定义一个多行文本框 //录入成绩窗口 public addPanel() { //创建无参的构造函数 boxH1 = Box.createHorizontalBox(); //实例化行式盒 boxH1 boxH2 = Box.createHorizontalBox(); //实例化行式盒 boxH2 box1 = Box.createVerticalBox(); //实例化列式盒 box1 box1.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box1.add(new JLabel("学号")); //向列式盒中添加 "学号" 标签 box1.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box1.add(new JLabel("数学成绩")); //向列式盒中添加 "数学成绩" 标签 box1.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box1.add(new JLabel("英语成绩")); //向列式盒中添加 "英语成绩" 标签 boxH1.add(box1); //向行式盒中添加列式盒box1 boxH1.add(Box.createHorizontalStrut(55)); //在行式盒中设置一个不可见的长为55的水平Strut对象 box2 = Box.createVerticalBox();//实例化列式盒 box2 textField1 = new JTextField(12); //实例化单行文本框 textField2 = new JTextField(12);//实例化单行文本框 textField3 = new JTextField(12);//实例化单行文本框 box2.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box2.add(textField1); //向列式盒中添加单行文本框 box2.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box2.add(textField2); //向列式盒中添加单行文本框 box2.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box2.add(textField3); //向列式盒中添加单行文本框 boxH1.add(box2); //向行式盒中添加列式盒box2 box3 = Box.createVerticalBox(); //实例化列式盒 box3 box3.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box3.add(new JLabel("姓名")); //向列式盒中添加 "姓名" 标签 box3.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box3.add(new JLabel("物理成绩")); //向列式盒中添加 "物理成绩" 标签 boxH2.add(box3); //向行式盒中添加列式盒box3 boxH2.add(Box.createHorizontalStrut(55)); //在行式盒中设置一个不可见的长为55的水平Strut对象 box4 = Box.createVerticalBox();//实例化列式盒 box3 box4.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 textField4 = new JTextField(12); //实例化单行文本框 textField5 = new JTextField(12); //实例化单行文本框 box4.add(textField4);//向列式盒中添加单行文本框 box4.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box4.add(textField5);//向列式盒中添加单行文本框 boxH2.add(box4); //向行式盒中添加列式盒box4 button =new JButton("录入"); //实例化按钮对象 button.addActionListener(new ActionListener() { //事件处理 , 给按钮添加监视器 @Override public void actionPerformed(ActionEvent e) { //实例化Student类对象并传值 try { Student student = new Student(textField1.getText(), textField4.getText(), Float.parseFloat(textField2.getText()), Float.parseFloat(textField5.getText()), Float.parseFloat(textField3.getText())); dbUtil.add(student); //调用MyDBUtil类中的add方法,并把student作为值传入 area.setText("你输入的信息添加成功!!"+"\r\"+"你可以通过查询成绩来查看相关信息!!"); //添加成功后设置area中的信息提示 //执行上面的方法后将文本框中的值清除 textField1.setText(""); textField2.setText(""); textField3.setText(""); textField4.setText(""); textField5.setText(""); } catch (NumberFormatException e1) { // TODO Auto-generated catch block area.setText("温馨提示!!"+"\r\"+"添加成绩失败,请重新进行操作!!");//添加失败后设置area中的信息提示 textField1.setText(""); textField2.setText(""); textField3.setText(""); textField4.setText(""); textField5.setText(""); } } }); p3 = new JPanel(); //实例化面板对象 p3.setLayout(new FlowLayout(FlowLayout.CENTER,5,100)); //设置p3面板的布局为FlowLayout布局,并设置水平和垂直间距 p3.add(button); //将按钮添加到p3面板中 p1 = new JPanel(); //实例化面板对象 p1.add(boxH1); //向p1面板里添加boxH1 p2 = new JPanel(); //实例化面板对象 p2.add(boxH2); //向p2面板中添加boxH2对象 p4 = new JPanel(); //实例化面板对象 area = new JTextArea("请在下面输入你想存入的相关的信息!!!",3,30); //实例化多行文本框并做初值的设定 p4.add(area); //向p4面板中添加area panel = new JPanel(); //实例化面板对象 panel.setLayout(new BorderLayout()); //设置panel面板的布局为BorderLayout布局 panel.add(p1,BorderLayout.WEST); //向panel面板的西边添加p1面板 panel.add(p2); //向panel面板中添加p2面板 panel.add(p3,BorderLayout.SOUTH); //向panel面板的南面添加p3面板 panel.add(p4,BorderLayout.NORTH); //向panel面板的北面添加p4面板 }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
//查询数据实现import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import javax.swing.JButton;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;public class checkPanel implements ActionListener{ JTable table; //定义一个表格引用 Object name[]={"学号","姓名","数学成绩","物理成绩","英语成绩"}; //定义一个姓名数组 Object a[][]; //定义一个a数组 ResultSet rs=null; MyDBUtil dbUtil = new MyDBUtil(); //创建一个MyDBUtil对象 LinkedList <Student>list=null; //定义一个LinkedList集合对象 JPanel panel2; //定义一个面板 JButton button1; //定义一个按钮 //查询成绩窗口设置 public void setList(){ //定义一个方法获取数据并将数据存入集合中 rs= dbUtil.checkAll(); //调用MyDBUtil类中的checkAll方法。 list=new LinkedList<Student>(); //实例化集合对象 if(rs!=null){ try { while(rs.next()){ //通过循环将数据存入集合中 list.add(new Student(rs.getString(1),rs.getString(2),rs.getFloat(3),rs.getFloat(4),rs.getFloat(5))); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public void setTable() { //定义一个方法设置表格 setList(); //调用setlist方法 a=new Object[list.size()][name.length]; //实例化数组a,并设置其行和列的大小 for(int i=0;i<list.size();i++){ //通过循环向数组中存入数据以放入表格中 Student s=list.get(i); //拿到集合的第i个位置的元素并传给Student对象 //通过Student对象的get方法获取相应的值 a[i][0]=s.getId(); a[i][1]=s.getName(); a[i][2]=s.getMath(); a[i][3]=s.getPhysics(); a[i][4]=s.getEnglish(); } panel2.removeAll(); //使其面板刷新 button1 = new JButton("刷新"); //实例化按钮对象 button1.addActionListener(this); //给按钮添加监视器 table=new JTable(a, name); //实例化表格 panel2.add(button1,BorderLayout.SOUTH); //向面板中添加按钮 panel2.add(new JScrollPane(table),BorderLayout.NORTH); //向面板中添加表格 } public checkPanel() { //定义一个无参的构造函数 panel2 = new JPanel(); //实例化面板对象 panel2.setLayout(new BorderLayout()); //设置面板的布局为BorderLayout()布局。 setTable(); //调用setTable方法 } @Override public void actionPerformed(ActionEvent e) { //添加事件 setTable(); //调用上面的setTable方法 }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
// 排序实现import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import javax.swing.JButton;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextArea;import javax.swing.JTextField;public class sortPanel implements ActionListener { JTable table; //定义一个表格引用 Object name[]={"学号","姓名","数学成绩","物理成绩","英语成绩"}; //定义一个姓名数组 Object aa[][]; //定义一个aa数组 ResultSet rs=null; MyDBUtil dbUtil = new MyDBUtil(); //创建一个MyDBUtil对象 LinkedList <Student>list=null; //定义一个LinkedList集合对象 JPanel panel3,p1,p2; //定义三个面板 JTextField field; //定义一个单行文本框 JTextArea area; //定义一个多行文本框 JButton b1,b2; //定义两个按钮 public void setList(){ //定义一个方法获取数据并将数据存入集合中 rs= dbUtil.checkAll(); //调用MyDBUtil类中的checkAll方法。 list=new LinkedList<Student>(); //实例化集合对象 if(rs!=null){ try { while(rs.next()){ //通过循环向集合中添加元素 list.add(new Student(rs.getString(1),rs.getString(2),rs.getFloat(3),rs.getFloat(4),rs.getFloat(5))); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public void setList1(String grade,String sort){ //定义一个方法获取数据并将数据存入集合中 , 并设定指定的参数 rs= dbUtil.checkAll(grade,sort); //调用MyDBUtil中的带参数的checkAll方法 list=new LinkedList<Student>(); //实例化集合对象 if(rs!=null){ try { while(rs.next()){ //通过循环向集合中添加元素 list.add(new Student(rs.getString(1),rs.getString(2),rs.getFloat(3),rs.getFloat(4),rs.getFloat(5))); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public void setTable() { //定义一个方法设置表格 setList(); //初始情况下先调用setList方法 aa=new Object[list.size()][name.length]; //实例化数组aa,并设置其行和列的大小 for(int i=0;i<list.size();i++){ //通过循环向数组中存入数据以放入表格中 Student s=list.get(i); //拿到集合的第i个位置的元素并传给Student对象 //通过Student对象的get方法获取相应的值 aa[i][0]=s.getId(); aa[i][1]=s.getName(); aa[i][2]=s.getMath(); aa[i][3]=s.getPhysics(); aa[i][4]=s.getEnglish(); } panel3.removeAll(); //使其面板刷新 b1 = new JButton("升序"); //实例化按钮对象 b1.addActionListener(this); //给按钮添加监视器 b2 = new JButton("降序"); //实例化按钮对象 b2.addActionListener(this); //给按钮添加监视器 area = new JTextArea("请按表格输入你想排序的信息。如: 数学成绩!!",2,15); //实例化多行文本框 field = new JTextField(16); //实例化单行文本框 p1 = new JPanel(); //实例化面板对象 p1.add(field); //向面板中添加文本框 p1.add(b1); //向面板中添加按钮 p1.add(b2); //向面板中添加按钮 p2 = new JPanel(); //实例化面板对象 p2.setLayout(new BorderLayout()); //设置面板的布局为BorderLayout布局 p2.add(p1,BorderLayout.SOUTH); //向p2面板中添加p1面板 p2.add(area); //向p2面板中添加area table=new JTable(aa, name); //实例化表格 panel3.add(p2); //向panel3面板中添加p1面板 panel3.add(new JScrollPane(table),BorderLayout.NORTH); //向panel3面板中添加表格 } public sortPanel() { panel3 = new JPanel(); //实例化面板对象 panel3.setLayout(new BorderLayout()); //设置面板的布局为BorderLayout布局 setTable(); //调用setTable方法。 } @Override public void actionPerformed(ActionEvent e) { //添加事件 //通过条件语句判断输入的信息是否符合要求 if("学号".equals(field.getText())||"姓名".equals(field.getText())||"数学成绩".equals(field.getText())||"物理成绩".equals(field.getText())||"英语成绩".equals(field.getText())) { if ("升序".equals(e.getActionCommand())) { //判断字符是否相等 setList1(field.getText(),"asc"); //条件成立的情况下设置参 aa=new Object[list.size()][name.length]; //实例化数组aa,并设置其行和列的大小 for(int i=0;i<list.size();i++){ //通过循环向数组中存入数据以放入表格中 Student s=list.get(i); //拿到集合的第i个位置的元素并传给Student对象 //通过Student对象的get方法获取相应的值 aa[i][0]=s.getId(); aa[i][1]=s.getName(); aa[i][2]=s.getMath(); aa[i][3]=s.getPhysics(); aa[i][4]=s.getEnglish(); } panel3.removeAll(); //使其面板刷新 b1 = new JButton("升序"); //实例化按钮对象 b1.addActionListener(this); //给按钮添加监视器 b2 = new JButton("降序"); //实例化按钮对象 b2.addActionListener(this); //给按钮添加监视器 area = new JTextArea(field.getText()+"的升序如表格所示!!",2,15); //实例化多行文本框 field = new JTextField(16); //实例化单行文本框 p1 = new JPanel(); //实例化面板对象 p1.add(field); //向面板中添加文本框 p1.add(b1); //向面板中添加按钮 p1.add(b2); //向面板中添加按钮 p2 = new JPanel(); //实例化面板对象 p2.setLayout(new BorderLayout()); //设置面板的布局为BorderLayout布局 p2.add(p1,BorderLayout.SOUTH); //向p2面板中添加p1面板 p2.add(area); //向p2面板中添加area table=new JTable(aa, name); //实例化表格 panel3.add(p2); //向panel3面板中添加p1面板 panel3.add(new JScrollPane(table),BorderLayout.NORTH); //向panel3面板中添加表格 } if ("降序".equals(e.getActionCommand())) { //判断获取的字符是否相等 setList1(field.getText(),"desc"); //条件成立的情况下设置参数 aa=new Object[list.size()][name.length]; //实例化数组aa,并设置其行和列的大小 for(int i=0;i<list.size();i++){ //通过循环向数组中存入数据以放入表格中 Student s=list.get(i); //拿到集合的第i个位置的元素并传给Student对象 //通过Student对象的get方法获取相应的值 aa[i][0]=s.getId(); aa[i][1]=s.getName(); aa[i][2]=s.getMath(); aa[i][3]=s.getPhysics(); aa[i][4]=s.getEnglish(); } panel3.removeAll(); //使其面板刷新 b1 = new JButton("升序"); //实例化按钮对象 b1.addActionListener(this); //给按钮添加监视器 b2 = new JButton("降序"); //实例化按钮对象 b2.addActionListener(this); //给按钮添加监视器 area = new JTextArea(field.getText()+"的降序如表格所示!!",2,15); //实例化多行文本框 field = new JTextField(16); //实例化单行文本框 p1 = new JPanel(); //实例化面板对象 p1.add(field); //向面板中添加文本框 p1.add(b1); //向面板中添加按钮 p1.add(b2); //向面板中添加按钮 p2 = new JPanel(); //实例化面板对象 p2.setLayout(new BorderLayout()); //设置面板的布局为BorderLayout布局 p2.add(p1,BorderLayout.SOUTH); //向p2面板中添加p1面板 p2.add(area); //向p2面板中添加area table=new JTable(aa, name); //实例化表格 panel3.add(p2); //向panel3面板中添加p1面板 panel3.add(new JScrollPane(table),BorderLayout.NORTH); //向panel3面板中添加表格 } }else { setList(); //初始情况下先调用setList方法 aa=new Object[list.size()][name.length]; //实例化数组aa,并设置其行和列的大小 for(int i=0;i<list.size();i++){ //通过循环向数组中存入数据以放入表格中 Student s=list.get(i); //拿到集合的第i个位置的元素并传给Student对象 //通过Student对象的get方法获取相应的值 aa[i][0]=s.getId(); aa[i][1]=s.getName(); aa[i][2]=s.getMath(); aa[i][3]=s.getPhysics(); aa[i][4]=s.getEnglish(); } panel3.removeAll(); //使其面板刷新 b1 = new JButton("升序"); //实例化按钮对象 b1.addActionListener(this); //给按钮添加监视器 b2 = new JButton("降序"); //实例化按钮对象 b2.addActionListener(this); //给按钮添加监视器 area = new JTextArea("温馨提示!!"+"\r\"+"你输入的信息有误,请按表格输入你想排序的信息!!",2,15); //实例化多行文本框 field = new JTextField(16); //实例化单行文本框 p1 = new JPanel(); //实例化面板对象 p1.add(field); //向面板中添加文本框 p1.add(b1); //向面板中添加按钮 p1.add(b2); //向面板中添加按钮 p2 = new JPanel(); //实例化面板对象 p2.setLayout(new BorderLayout()); //设置面板的布局为BorderLayout布局 p2.add(p1,BorderLayout.SOUTH); //向p2面板中添加p1面板 p2.add(area); //向p2面板中添加area table=new JTable(aa, name); //实例化表格 panel3.add(p2); //向panel3面板中添加p1面板 panel3.add(new JScrollPane(table),BorderLayout.NORTH); //向panel3面板中添加表格 } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
// 修改数据实现import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;public class modifyPanel { MyDBUtil dbUtil = new MyDBUtil(); //创建MyDBUtil类的对象 JPanel panel4; //创建一个面板 //修改成绩窗口组件设置 JPanel p1,p2,p3,p4; //定义四个面板 Box boxH1,boxH2; //定义两个行式盒 Box box1,box2,box3,box4; //定义四个列式盒 JButton button1; //定义一个按钮 JTextField t1,t2,t3,t4,t5,t6; //定义六个单号文本框 JTextArea area; public modifyPanel() { //定义一个无参的构造函数 //实例化行式盒 boxH1 = Box.createHorizontalBox(); boxH2 = Box.createHorizontalBox(); box1 = Box.createVerticalBox(); //实例化列式盒 box1.add(Box.createVerticalStrut(50)); //向列式盒中添加不可见的垂直Strut对象 box1.add(new JLabel("学号")); //向列式盒中添加 “学号” 标签 box1.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box1.add(new JLabel("数学成绩")); //向列式盒中添加 “数学成绩” 标签 box1.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box1.add(new JLabel("英语成绩")); //向列式盒中添加 “英语成绩” 标签 boxH1.add(box1); //向行式盒boxH1中添加列式盒box1 boxH1.add(Box.createHorizontalStrut(50)); //在行式盒boxH1中设置一个水平为50的不可见的Strut对象。 box2 = Box.createVerticalBox(); //实例化列式盒 box2.add(Box.createVerticalStrut(50)); //向列式盒中添加不可见的垂直Strut对象 //实例化单行文本框 t1 = new JTextField(12); t2 = new JTextField(12); t3 = new JTextField(12); //向列式盒中添加单行文本框 box2.add(t1); box2.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box2.add(t2); box2.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box2.add(t3); boxH1.add(box2); //向行式盒中添加列式盒 box3 = Box.createVerticalBox(); //实例化列式盒 box3.add(Box.createVerticalStrut(50)); //向列式盒中添加不可见的垂直Strut对象 box3.add(new JLabel("姓名")); //向列式盒中添加 “姓名” 标签 box3.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box3.add(new JLabel("物理成绩")); //向列式盒中添加 “物理成绩” 标签 boxH2.add(box3); //向行式盒中添加列式盒 boxH2.add(Box.createHorizontalStrut(70)); //在行式盒boxH2中设置一个水平为50的不可见的Strut对象 box4 = Box.createVerticalBox(); //实例化列式盒 box4.add(Box.createVerticalStrut(50)); //向列式盒中添加不可见的垂直Strut对象 //实例化单行文本框 t4 = new JTextField(12); t5 = new JTextField(12); //向列式盒中添加单行文本框 box4.add(t4); box4.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 box4.add(t5); boxH2.add(box4); //向行式盒中添加列式盒 p2 = new JPanel(); //实例化面板对象 p2.add(boxH1); //向p2面板中添加行式盒boxH1 p3 = new JPanel(); //实例化面板对象 p3.add(boxH2); //向p3面板中添加行式盒boxH2 t6 = new JTextField(10); //实例化一个单行文本框 button1 = new JButton("修改"); //实例化一个按钮对象 button1.addActionListener(new ActionListener() { //给按钮添加监视器处理事件 @Override public void actionPerformed(ActionEvent e) { try { //异常情况处理 if(t1.getText().equals(t6.getText())) { //通过条件判断语句判断输入的信息是否符合要求 //获取到文本框中的内容传给Student类 Student student = new Student(t1.getText(), t4.getText(), Float.parseFloat(t2.getText()), Float.parseFloat(t5.getText()), Float.parseFloat(t3.getText())); dbUtil.modify(student); //调用MyDBUtil类中的modify类 area.setText("成绩信息修改成功,你可以通过查询成绩来查看相关信息!!!"); //给多行文本框设值 //运行之后设置文本框的值为空 t1.setText(""); t2.setText(""); t3.setText(""); t4.setText(""); t5.setText(""); t6.setText(""); }else { area.setText("温馨提示!!"+"\r\"+"由于两处学号信息不一致,无法进行修改.."+"\r\"+"请重新输入你想修改的信息!!"); //给多行文本框设值 //运行之后设置文本框的值为空 t1.setText(""); t2.setText(""); t3.setText(""); t4.setText(""); t5.setText(""); t6.setText(""); } } catch (NumberFormatException e1) { //异常情况处理 // TODO Auto-generated catch block area.setText("温馨提示!!"+"\r\"+"输入的成绩不符合要求,修改失败,请重新进行操作!!");//修改失败后设置area中的信息提示 //运行之后设置文本框的值为空 t1.setText(""); t2.setText(""); t3.setText(""); t4.setText(""); t5.setText(""); t6.setText(""); } } }); p4 = new JPanel(); //实例化面板对象 p4.add(new JLabel("输入学号: ")); //向p4面板中添加标签 p4.add(t6); //向p4面板中添加t6文本框 p4.add(button1); //向p4面板添加按钮 area = new JTextArea("请按标签信息输入你想修改的信息!!",5,30); //实例化多行文本框 p1 = new JPanel(); //实例化面板 p1.add(area); //向面板中添加area panel4 = new JPanel(); //实例化面板对象 panel4.setLayout(new BorderLayout()); //设置panel4面板的布局为BorderLayout布局 panel4.add(p2,BorderLayout.WEST); //向panel4面板中添加p2面板并放在panel4的西面。 panel4.add(p3); //向panel4面板中添加p3面板 panel4.add(p4,BorderLayout.SOUTH); //向panel4面板中添加p4面板并放在panel4的南面。 panel4.add(p1,BorderLayout.NORTH); //向panel4面板中添加p1面板并放在panel4的北面。 }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
// 删除数据实现import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;public class deletePanel { MyDBUtil dbUtil = new MyDBUtil(); //创建MyDBUtil类的对象 JPanel panel5; //定义一个面板对象 JPanel p1,p2,p3,p4; //定义四个面板对象 Box boxH1,boxH2; //定义两个行式盒 Box boxV1,boxV2,boxV3,boxV4; //定义四个列式盒 JButton button1; //定义一个按钮 JTextField te1,te2,te3,te4,te5,te6; //定义六个单行文本框 JTextArea area; //定义一个多行文本框 public deletePanel() { //定义一个无参的构造函数 //实例化行式盒 boxH1 = Box.createHorizontalBox(); boxH2 = Box.createHorizontalBox(); boxV1 = Box.createVerticalBox(); //实例化列式盒 boxV1.add(Box.createVerticalStrut(50)); //向列式盒中添加不可见的垂直Strut对象 boxV1.add(new JLabel("学号")); //向列式盒中添加 “学号” 标签 boxV1.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 boxV1.add(new JLabel("数学成绩")); //向列式盒中添加 “数学成绩” 标签 boxV1.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 boxV1.add(new JLabel("英语成绩")); //向列式盒中添加 “英语成绩” 标签 boxH1.add(boxV1); //向行式盒boxH1中添加列式盒boxV1 boxH1.add(Box.createHorizontalStrut(50)); //在行式盒boxH1中设置一个水平为50的不可见的Strut对象。 boxV2 = Box.createVerticalBox(); //实例化列式盒 boxV2.add(Box.createVerticalStrut(50)); //向列式盒中添加不可见的垂直Strut对象 //实例化单行文本框 te1 = new JTextField(12); te2 = new JTextField(12); te3 = new JTextField(12); //向列式盒中添加单行文本框 boxV2.add(te1); boxV2.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 boxV2.add(te2); boxV2.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 boxV2.add(te3); boxH1.add(boxV2); //向行式盒中添加列式盒 boxV3 = Box.createVerticalBox(); //实例化列式盒 boxV3.add(Box.createVerticalStrut(50)); //向列式盒中添加不可见的垂直Strut对象 boxV3.add(new JLabel("姓名")); //向列式盒中添加 “姓名” 标签 boxV3.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 boxV3.add(new JLabel("物理成绩")); //向列式盒中添加 “物理成绩” 标签 boxH2.add(boxV3); //向行式盒中添加列式盒 boxH2.add(Box.createHorizontalStrut(70)); //在行式盒boxH2中设置一个水平为50的不可见的Strut对象 boxV4 = Box.createVerticalBox(); //实例化列式盒 boxV4.add(Box.createVerticalStrut(50)); //向列式盒中添加不可见的垂直Strut对象 //实例化单行文本框 te4 = new JTextField(12); te5 = new JTextField(12); //向列式盒中添加单行文本框 boxV4.add(te4); boxV4.add(Box.createVerticalStrut(35)); //向列式盒中添加不可见的垂直Strut对象 boxV4.add(te5); boxH2.add(boxV4); //向行式盒中添加列式盒 p1 = new JPanel(); //实例化面板对象 p1.add(boxH1); //向p1面板中添加行式盒boxH1 p2 = new JPanel(); //实例化面板对象 p2.add(boxH2); //向p2面板中添加行式盒boxH2 te6 = new JTextField(10); //实例化一个单行文本框 button1 = new JButton("删除"); //实例化一个按钮对象 button1.addActionListener(new ActionListener() { //给按钮添加监视器处理事件 @Override public void actionPerformed(ActionEvent e) { try { //异常处理 if(te1.getText().equals(te6.getText())) { //通过条件判断语句判断输入的信息是否符合要求 //获取到文本框中的内容传给Student类 Student student = new Student(); student.set(te1.getText(), te4.getText(), Float.parseFloat(te2.getText()), Float.parseFloat(te5.getText()), Float.parseFloat(te3.getText())); dbUtil.delete(student); //调用MyDBUtil类中的modify类 area.setText("成绩信息删除成功,你可以通过查询成绩来查看相关信息!!!"); //给多行文本框设值 //运行之后设置文本框的值为空 te1.setText(""); te2.setText(""); te3.setText(""); te4.setText(""); te5.setText(""); te6.setText(""); }else { area.setText("温馨提示!!"+"\r\"+"由于两处学号信息不一致,无法进行删除.."+"\r\"+"请重新输入你想删除的信息!!"); //给多行文本框设值 //运行之后设置文本框的值为空 te1.setText(""); te2.setText(""); te3.setText(""); te4.setText(""); te5.setText(""); te6.setText(""); } }catch (NumberFormatException e1) { // TODO Auto-generated catch block area.setText("温馨提示!!"+"\r\"+"输入的成绩不符合要求,删除失败,请重新进行操作!!!"); //删除失败后设置area中的信息提示 //运行之后设置文本框的值为空 te1.setText(""); te2.setText(""); te3.setText(""); te4.setText(""); te5.setText(""); te6.setText(""); } } }); p3 = new JPanel(); //实例化面板对象 p3.add(new JLabel("输入学号: ")); //向p3面板中添加标签 p3.add(te6); //向p3面板中添加t6文本框 p3.add(button1); //向p3面板添加按钮 area = new JTextArea("请按标签信息输入你想删除的信息!!",5,30); //实例化多行文本框 p4 = new JPanel(); //实例化面板 p4.add(area); //向面板中添加area panel5 = new JPanel(); //实例化面板对象 panel5.setLayout(new BorderLayout()); //设置panel5面板的布局为BorderLayout布局 panel5.add(p1,BorderLayout.WEST); //向panel5面板中添加p1面板并放在panel5的西面 panel5.add(p2); //向panel5面板中添加p2面板 panel5.add(p3,BorderLayout.SOUTH); //向panel5面板中添加p3面板并放在panel5的南面。 panel5.add(p4,BorderLayout.NORTH); //向panel5面板中添加p4面板并放在panel5的北面。 }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
// 数据库操作实现import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class MyDBUtil { //先单独写一个方法,获取连接 public Connection getCon() { Connection con=null; //定义一个连接数据库的变量 try { //在java文件中加载驱动类 Class.forName("com.mysql.cj.jdbc.Driver"); //连接数据库 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?user=root&password=root&useSSL=true&serverTimezone=GMT%2B8"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return con; //返回连接 } //查询所有记录 public ResultSet checkAll() { Connection con = getCon(); //获取上面的连接 Statement statement=null; ResultSet rs=null; try { if (con!=null) { //建立查询语句 statement = con.createStatement(); //使用查询语句获取结果 rs=statement.executeQuery("select * from student"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return rs; } //查询所有记录并按某一成绩进行排序(升序或降序) public ResultSet checkAll(String grade,String sort) { Connection con = getCon(); //获取上面的连接 Statement statement=null; ResultSet rs=null; try { if (con!=null) { //建立查询语句 statement = con.createStatement(); //使用查询语句获取结果 rs=statement.executeQuery("select * from student order by "+grade+" "+sort+""); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return rs; } //添加记录 public void add(Student stu) { //单独定义一个方法向数据库中添加数据。 Connection con = getCon(); //拿到连接 PreparedStatement pst = null; //创建预处理对象 try { if (con!=null) { pst=con.prepareStatement("insert into student values(?,?,?,?,?)"); //使用预处理语句提高效率 pst.setString(1, stu.getId()); //给第一个问号处设值 pst.setString(2,stu.getName()); //给第二个问号处设值 pst.setDouble(3, stu.getMath()); //给第三个问号处设值 pst.setDouble(4, stu.getPhysics()); //给第四个问号处设值 pst.setDouble(5, stu.getEnglish()); //给第五个问号处设值 pst.executeUpdate(); //由于使用了预处理语句,执行时就不用传入执行语句。 } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //关闭资源 原则: 先打开的后关闭,后打开的先关闭。 异常最好各处理各的。 if (pst!=null) { try { pst.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (con!=null) { try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //删除记录 public void delete(Student stu) { Connection con = getCon(); //拿到连接 PreparedStatement pst = null; //定义预处理变量 try { if (con!=null) { String sql = "delete from student where 学号 = ?"; //设置查询语句 pst = con.prepareStatement(sql); //使用预处理语句 pst.setString(1, stu.getId()); //给问号设置值 pst.execute(); //执行查询语句 } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if (pst!=null) { try { pst.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (con!=null) { try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //修改记录 public void modify(Student stu) { Connection con = getCon(); //拿到连接 PreparedStatement pst = null; //预处理语句 try { if (con!=null) { String sql = "update student set 姓名=?,数学成绩=?,物理成绩=?,英语成绩=? where 学号=?"; //设置查询语句 pst = con.prepareStatement(sql); //建立查询语句的时候就把sql语句传递进去。 pst.setString(1, stu.getName()); //给第一处问号设值 pst.setFloat(2, stu.getMath()); //给第二处问号设值 pst.setFloat(3, stu.getPhysics()); //给第三处问号设值 pst.setFloat(4, stu.getEnglish()); //给第四处问号设值 pst.setString(5, stu.getId()); //给第五处问号设值 pst.execute(); //执行的时候就不传入sql语句了。 } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(pst!=null) { try { pst.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(con!=null) { try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
本代码完全由个人实现: (仅做参考)