💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
Student.java ~~~ package zyw.student; import zyw.tools.DataBase; import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Vector; public class Student extends JPanel implements ActionListener { //创建一个上下方向分割的JSplitPane对象 private JSplitPane jsp=new JSplitPane(JSplitPane.VERTICAL_SPLIT); private JPanel jpt=new JPanel(); String[]str1=new String[7];//声明字符串数组 String sql; DataBase db; private JLabel[] jlArray=new JLabel[]{//声明标签数组 new JLabel(" 学 号"), new JLabel(" 姓 名"), new JLabel(" 性 别"), new JLabel(" 班 级"), new JLabel(" 院 系"), new JLabel(" 密 码"), new JLabel(" 借书权限") }; private JTextField[] jtxtArray=new JTextField[]{//声明文本框数组 new JTextField(),new JTextField(), new JTextField(),new JTextField(), new JTextField(),new JTextField() }; private String[] str={"是","否"};//创建下拉列表框数据模型的字符串数组 private JComboBox jcp=new JComboBox(str);//创建下拉列表框 private JButton[] jbArray={//设置JButton按钮的文本 new JButton("添加学生信息"),new JButton("删除学生信息"), new JButton("修改学生信息"),new JButton("查找学生信息") }; Vector<String> head = new Vector<String>(); {//创建标题 head.add("学号");head.add("姓名"); head.add("性别");head.add("班级"); head.add("院系");head.add("密码"); head.add("借书权限"); } Vector<Vector> data=new Vector<Vector>();//在下部子窗口中设置表格 DefaultTableModel dtm=new DefaultTableModel(data,head);//创建表格模型 JTable jt=new JTable(dtm);//创建JTable对象 JScrollPane jspn=new JScrollPane(jt);//将JTable封装到滚动窗格 public Student() { this.setLayout(new GridLayout(1,1));//声明本界面为网格布局 jpt.setLayout(null);//设置面板的上部分为空布局管理器 jsp.setDividerLocation(130);//设置jspt中分割条的初始位置 jsp.setDividerSize(4);//设置分隔条的宽度 jsp.setTopComponent(jpt); jsp.setBottomComponent(jspn); for(int i=0;i<6;i++){//将文本框添加进上部面板 jpt.add(jtxtArray[i]); } for(int i=0;i<7;i++){ jpt.add(jlArray[i]); if(i<3) {//对界面上的第一行标签和文本框大小位置进行设置 jlArray[i].setBounds(20+i*200,10,100,20); jtxtArray[i].setBounds(120+i*200,10,120,20); jtxtArray[i].addActionListener(this); } else if(i>2&&i<6) {//对第二行标签和文本框大小位置进行设置 jlArray[i].setBounds(20+(i-3)*200,50,100,20); jtxtArray[i].setBounds(120+(i-3)*200,50,120,20); jtxtArray[i].addActionListener(this); } else {//对最下面的显示标签进行设置 jlArray[i].setBounds(620,10,100,20); } } this.add(jsp); jpt.add(jcp); jsp.setBottomComponent(jspn);//设置下部子窗格 jcp.setBounds(720,10,100,20); for(int i=0;i<4;i++) {//将JButton添加进jpt jpt.add(jbArray[i]); jbArray[i].setBounds(170+112*i,90,112,25); jbArray[i].addActionListener(this); //设置监听器 } //设置窗体的大小位置及可见性 this.setBounds(5,5,600,500); this.setVisible(true); } public void actionPerformed(ActionEvent e) {//为文本框设置焦点 if(e.getSource()==jtxtArray[0]) { jtxtArray[1].requestFocus(); } if(e.getSource()==jtxtArray[1]) { jtxtArray[2].requestFocus(); } if(e.getSource()==jtxtArray[2]) { jtxtArray[3].requestFocus(); } if(e.getSource()==jtxtArray[3]) { jtxtArray[4].requestFocus(); } if(e.getSource()==jtxtArray[4]) { jtxtArray[5].requestFocus(); } //当点击"添加学生信息"按钮是将执行添加功能,将文本框的学生信息添加进STUDENT表中 if(e.getSource()==jbArray[0]) { this.insertStudent(); } //当点击"删除学生信息"按钮是将执行删除功能,将学号为学号框的学生信息从STUDENT表中删除 if(e.getSource()==jbArray[1]) { this.deleteStudent(); } //当点击"修改学生信息"按钮是将执行修改功能,将信息为学号框的学生信息在STUDENT表中更新 if(e.getSource()==jbArray[2]) { this.updateStudent(); } //当点击"查找学生信息"按钮是将执行查找功能,将从STUDENT表中查找学号为学号框的学生信息 if(e.getSource()==jbArray[3]) { this.searchStudent(); } } public void insertStudent(){ for(int i=0;i<6;i++){//声明文本框输入信息 str1[i]=jtxtArray[i].getText().trim(); } if(str1[0].equals("")&&str1[1].equals("")&&str1[2].equals("") &&str1[3].equals("")&&str1[4].equals("")&&str1[5].equals("")) {//当各文本框为空提示 JOptionPane.showMessageDialog(this, "学生信息不能为空!!!", "消息",JOptionPane.INFORMATION_MESSAGE); return; } if(!str1[0].equals("")&&!str1[1].equals("")&&!str1[2].equals("") &&!str1[3].equals("")&&!str1[4].equals("")&&!str1[5].equals("")) {//当在文本框输入信息 str1[6]=jcp.getSelectedItem().toString(); sql="insert into STUDENT(StuNO,StuName,StuSex,Class,Department," +"Password,Permitted) values('"+str1[0]+"','"+str1[1]+"','" + str1[2] + "',' "+str1[3]+"','"+ str1[4]+"','"+str1[5]+"','"+str1[6]+"')"; db=new DataBase(); Vector<String> v = new Vector<String>(); for(int i=0;i<=6;i++){//将每列添加到临时数组v v.add(str1[i]); if(i<6){jtxtArray[i].setText("");} } data.add(v); dtm.setDataVector(data,head);//更新table并显示 jt.updateUI(); jt.repaint(); return; } } public void deleteStudent(){ String stuno = jtxtArray[0].getText().trim(); if(stuno.equals("")){//当学号输入为空提示 JOptionPane.showMessageDialog(this, "学号不能为空!!!", "消息",JOptionPane.INFORMATION_MESSAGE); return; } sql="select * from STUDENT where StuNO="+Integer.parseInt(stuno); db=new DataBase(); sql="delete from STUDENT where StuNO="+Integer.parseInt(stuno); } public void updateStudent(){ String str[]=new String[7]; int row = jt.getSelectedRow();//声明所选行号 if(row>=0){//选择了表格中的某行 for(int i=0;i<7;i++){str[i]=jt.getValueAt(row,i).toString();} sql="update STUDENT set StuName='"+str[1]+"',StuSex='"+str[2]+"',Class='" +str[3]+"',Department='"+str[4]+"',Permitted='"+str[5]+"',Password='"+str[6] +"' where StuNO="+Integer.parseInt(str[0].trim()); db=new DataBase(); JOptionPane.showMessageDialog(this,"修改成功!!", "消息!!",JOptionPane.INFORMATION_MESSAGE); return; } if(row==-1){//当没有选择就点击'修改信息'按钮 ,提示 JOptionPane.showMessageDialog(this,"请点击'查找'按钮,在下部更改,再选中所改行,点击'修改信息'按钮", "Warning!!",JOptionPane.INFORMATION_MESSAGE); return; } } public void searchStudent(){ if(jtxtArray[0].getText().equals("")){// JOptionPane.showMessageDialog(this,"输入不能为空,请重新输入!!!", "信息",JOptionPane.INFORMATION_MESSAGE); return; } sql="select * from STUDENT where StuNO="+Integer.parseInt(jtxtArray[0].getText().trim()); db=new DataBase(); try{//对结果集进行异常处理 int k=0; Vector<Vector> vtemp = new Vector<Vector>(); dtm.setDataVector(vtemp,head); jt.updateUI(); jt.repaint(); } catch(Exception e){e.printStackTrace();} } } ~~~