学生信息管理系统-GUI

xiaoxiao2021-02-28  97

本人java 初学者,使用了已经过时的GUI图形用户界面。

程序运了IO进行数据的读写,没有涉及到数据库的使用。

写道最后发现有很多的缺点,面向对象的程序设计思想很多地方体现的不是很到位,还有频繁的操作磁盘文件。

也参考过许多网上许多大佬的方法。

算是给自己学java半年以来的一个说法吧。

最后将代码分享给大家,一起学习!

package MyStu; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.*; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import javax.swing.*; class Login extends JFrame implements ActionListener{ static ArrayList<Student> as = new ArrayList<Student>(); JButton b1,b2=null; JPanel jp1,jp2,jp3=null; JTextField jtf=null; JLabel jlb1,jlb2=null; JPasswordField pwf=null; final String user="123";       final String psd="123";   public Login(){ Image icon=Toolkit.getDefaultToolkit().getImage("E://1.gif"); this.setIconImage(icon); b1=new JButton("登陆"); b1.setFont(new Font("华文中宋", Font.BOLD, 15)); b2=new JButton("清除"); b2.setFont(new Font("华文中宋", Font.BOLD, 15)); b1.setBorder(null); b2.setBorder(null); b1.addActionListener(this); b2.addActionListener(this); jp1=new JPanel();   jp1.setBackground(Color.cyan);     jp2=new JPanel();       jp2.setBackground(Color.YELLOW);     jp3=new JPanel();       jp3.setBackground(Color.orange);          jlb1=new JLabel("用户名:");       jlb2=new JLabel("密    码:");       jlb1.setFont(new Font("华文行楷", Font.BOLD, 20));     jlb2.setFont(new Font("华文行楷", Font.BOLD, 20));      jtf=new JTextField(10); pwf=new JPasswordField(10); jp1.add(jlb1); jp1.add(jtf); jp2.add(jlb2); jp2.add(pwf); jp3.add(b1); jp3.add(b2); this.add(jp1);       this.add(jp2);       this.add(jp3);                 this.setLayout(new GridLayout(3,1));                 this.setTitle("学生信息管理系统");                this.setSize(300,200);                   this.setLocation(200, 150);                  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                             this.setVisible(true);          this.setResizable(false);   } public void actionPerformed(ActionEvent e){ if(e.getActionCommand()=="登陆"){ stulogin(); }else if (e.getActionCommand()=="清除") { clear(); } }                              public void stulogin(){ if(user.equals(jtf.getText())&&psd.equals(pwf.getText())){ JOptionPane.showMessageDialog(null,"登录成功!","系统提示",JOptionPane.WARNING_MESSAGE); clear();   dispose(); Menu1 ui=new Menu1(); }else if(jtf.getText().isEmpty()&&pwf.getText().isEmpty())           {               JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);           }else if(jtf.getText().isEmpty())           {               JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);           }else if(pwf.getText().isEmpty())           {               JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);           }else           {               JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请重新输入","提示消息",JOptionPane.ERROR_MESSAGE);               //清空输入框               clear();           }   } public void clear(){ jtf.setText(""); pwf.setText(""); } } //--------------------------------------------------------- //Memu功能菜单栏 class Menu1 extends JFrame { static ArrayList<Student> as = new ArrayList<Student>(); JButton jb1,jb2,jb3,jb4,jb5,jb6=null;    JPanel jp1,jp2,jp3=null;    JLabel jlb1=null;   public  Menu1(){   jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp1.setBackground(Color.cyan); jp2.setBackground(Color.cyan); jp3.setBackground(Color.cyan);   jb1=new JButton("添加信息"); jb2=new JButton("删除信息"); jb3=new JButton("查找信息"); jb5=new JButton("查看信息"); jb6=new JButton("退出"); jb1.setFont(new Font("华文中宋", Font.BOLD, 18)); jb2.setFont(new Font("华文中宋", Font.BOLD, 18)); jb3.setFont(new Font("华文中宋", Font.BOLD, 18)); jb5.setFont(new Font("华文中宋", Font.BOLD, 18)); jb6.setFont(new Font("华文中宋", Font.BOLD, 18));   jb1.setBorder(null); jb2.setBorder(null); jb3.setBorder(null); jb5.setBorder(null); jb6.setBorder(null);   jlb1=new JLabel("欢迎使用学生信息管理系统");  jlb1.setHorizontalAlignment(SwingConstants.CENTER);  jlb1.setFont(new Font("华文行楷", Font.BOLD, 40)); jp1. add(jlb1);     jp2.add(jb1); jp2.add(jb2); jp2.add(jb3);   jp3.add(jb5); jp3.add(jb6);   this.add(jp1); this.add(jp2); this.add(jp3);   this.setLayout(new GridLayout(3,5));    this.setTitle("学生信息管理系统");     this.setSize(500,400);          //设置窗体初始位置          this.setLocation(200, 150);         //设置当关闭窗口时,保证JVM也退出          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);             //显示窗体          this.setVisible(true);          this.setResizable(false);          jb1.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(e.getActionCommand()=="添加信息"){ addinfo_Menu ai=new addinfo_Menu(); ArrayList<Student>as=new ArrayList<Student>(); ai.infor(as); } }   });                        jb2.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(e.getActionCommand()=="删除信息"){ Delete_info di=new Delete_info(); di.delete_info(); } }        });                jb3.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(e.getActionCommand()=="查找信息"){ scaninfo si=new scaninfo(); si.Scaninfo(); } }                        });                               jb5.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(e.getActionCommand()=="查看信息"){ readinfo ri=new readinfo(); ri.Readinfo(); } }                        });                jb6.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(e.getActionCommand()=="退出"){ dispose(); Login lg=new Login(); } }                        });  } public void addinfo(){ } } //主类-------------------------------------------------- public class Wenfan{ public   static void main(String[] args){ Login lg=new Login(); } } package MyStu; import java.awt.*; import java.awt.event.*; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.*; import javax.swing.*;  class addinfo_Menu extends JFrame implements ActionListener { ArrayList<Student>as=new ArrayList<Student>(); JButton jb1,jb2,jb3,jb4=null; JPanel  jp1,jp2,jp3,jp4,jp5,jp6,jp7=null; JTextField jtf1,jtf2,jtf3,jtf4,jtf5=null; JLabel jlb1,jlb2,jlb3,jlb4,jlb5,jlb6=null;   public void infor(final ArrayList<Student>as){ jb1=new JButton("保存"); jb2=new JButton("返回"); jb3=new JButton("继续添加"); jb4=new JButton("清除文件数据"); jb1.addActionListener(this); jb2.addActionListener(this); jb3.addActionListener(this); jb4.addActionListener(this); jb1.setFont(new Font("华文中宋", Font.BOLD, 15)); jb2.setFont(new Font("华文中宋", Font.BOLD, 15)); jb3.setFont(new Font("华文中宋", Font.BOLD, 15)); jb4.setFont(new Font("华文中宋", Font.BOLD, 15)); jp1=new JPanel();       jp2=new JPanel();       jp3=new JPanel();      jp4=new JPanel();     jp5=new JPanel();     jp6=new JPanel();     jp7=new JPanel();     jp1.setBackground(Color.cyan); jp2.setBackground(Color.cyan); jp3.setBackground(Color.cyan); jp4.setBackground(Color.cyan); jp5.setBackground(Color.cyan); jp6.setBackground(Color.cyan); jp7.setBackground(Color.cyan);                    jlb1=new JLabel("输入学生信息");       jlb1.setFont(new Font("华文行楷", Font.BOLD, 30));     jlb2=new JLabel("姓名:");       jlb3=new JLabel("性别:");       jlb4=new JLabel("年龄:");       jlb5=new JLabel("学号:");       jlb6=new JLabel("成绩:");            jlb1.setFont(new Font("华文行楷", Font.BOLD, 25));     jlb2.setFont(new Font("华文行楷", Font.BOLD, 25));     jlb3.setFont(new Font("华文行楷", Font.BOLD, 25));     jlb4.setFont(new Font("华文行楷", Font.BOLD, 25));     jlb5.setFont(new Font("华文行楷", Font.BOLD, 25));     jlb6.setFont(new Font("华文行楷", Font.BOLD, 25));      jtf1=new JTextField(10); jtf2=new JTextField(10); jtf3=new JTextField(10); jtf4=new JTextField(10); jtf5=new JTextField(10); jp1.add(jlb1); jp2.add(jlb2); jp2.add(jtf1); jp3.add(jlb3); jp3.add(jtf2); jp4.add(jlb4); jp4.add(jtf3); jp5.add(jlb5); jp5.add(jtf4); jp6.add(jlb6); jp6.add(jtf5); jp7.add(jb1); jp7.add(jb3); jp7.add(jb4); jp7.add(jb2); this.add(jp1);       this.add(jp2);       this.add(jp3);       this.add(jp4);       this.add(jp5);       this.add(jp6);      this.add(jp7);          //设置布局管理器          this.setLayout(new GridLayout(7,1));          //给窗口设置标题      this.setTitle("学生成绩管理系统");       //设置窗体大小          this.setSize(500,400);          //设置窗体初始位置          this.setLocation(200, 150);          //显示窗体          this.setVisible(true);          this.setResizable(false);           } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getActionCommand()=="保存"){ try { File stu_csv = new File("E://stu.txt");    if(stu_csv.exists())    //    stu_csv.delete();   stu_csv.createNewFile();    String stu_name,stu_gendar,stu_age,stu_number,stu_score;    stu_name=jtf1.getText(); stu_gendar=jtf2.getText(); stu_age=jtf3.getText(); stu_number=jtf4.getText(); stu_score=jtf5.getText();   as.add(new Student(stu_name,stu_gendar,stu_age,stu_number,stu_score)); BufferedWriter bfw = new BufferedWriter(new FileWriter(stu_csv,true));    //bfw.newLine();      for (Student stu : as) {       System.out.println(stu.name+","+stu.gendar+","+stu.age+","+stu.number+","+stu.score);        bfw.write(stu.name+","+stu.gendar+","+stu.age+","+stu.number+","+stu.score+"\r\n");      }      bfw.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }   JOptionPane.showMessageDialog(null,"已保存姓名为:"+jtf1.getText()+"的信息","系统提示",JOptionPane.INFORMATION_MESSAGE);  }else if(e.getActionCommand()=="继续添加"){ reset(); }else if(e.getActionCommand()=="清除文件数据"){ try { File stu_csv = new File("E://stu.txt");   if(stu_csv.exists())          stu_csv.delete();   stu_csv.createNewFile(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }   }else if(e.getActionCommand()=="返回"){ dispose(); } } public  void reset(){ jtf1.setText(""); jtf2.setText(""); jtf3.setText(""); jtf4.setText(""); } }      class Student{ String  name; String gendar; String number; String age; String score; public Student(String name,String gendar,String age,String number,String score){ this.name=name; this.gendar=gendar; this.age=age; this.number=number;                       this.score=score; }      } package MyStu; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.StringTokenizer; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTable; import javax.swing.JTextField;  class Delete_info extends JFrame implements ActionListener{ JButton jb1,jb2,jb3,jb4,jb5; JLabel jlb1,jlb2,jlb3,jlb4; JPanel jp1,jp2,jp3,jp4,jp5,jp6,jp7; JTextField jtf1; public void delete_info(){ jp1=new JPanel(); jp2=new JPanel(); jp7=new JPanel(); jp1.setBackground(Color.cyan); jp2.setBackground(Color.cyan); jp7.setBackground(Color.cyan);   jb1=new JButton("按学号删除"); jb2=new JButton("按姓名删除"); jb5=new JButton("返回"); jb1.addActionListener(this); jb2.addActionListener(this); jb5.addActionListener(this); jb1.setBorder(null); jb2.setBorder(null); jb5.setBorder(null); jb1.setFont(new Font("华文中宋", Font.BOLD, 20)); jb2.setFont(new Font("华文中宋", Font.BOLD, 20)); jb5.setFont(new Font("华文中宋", Font.BOLD, 15)); jlb1=new JLabel("删除信息");   jlb1.setFont(new Font("华文行楷", Font.BOLD, 30));      jp1.add(jlb1);            jp2.add(jb1);      jp2.add(jb2);            jp7.add(jb5);            this.add(jp1);      this.add(jp2);      this.add(jp7);            this.setLayout(new GridLayout(3,1));      this.setTitle("删除");      this.setSize(500,400);      this.setLocation(200,150);      this.setVisible(true);      this.setResizable(false); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getActionCommand()=="按学号删除"){ Delete_Number dn=new Delete_Number(); dn.delete_number(); }else if(e.getActionCommand()=="按姓名删除"){ Delete_Name dne=new Delete_Name(); dne.delete_name(); }else if(e.getActionCommand()=="返回"){ dispose(); } } }    class Delete_Number extends JFrame implements ActionListener{ JButton jb1,jb2; JPanel jp1,jp2,jp3,jp4,jp5; JTextField jtf1; JLabel jlb1,jlb2,jlb3; ArrayList<Student3> as3 = new ArrayList<Student3>(); BufferedWriter bfw; public void delete_number(){ jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel(); jp1.setBackground(Color.cyan); jp2.setBackground(Color.cyan); jp3.setBackground(Color.cyan); jp4.setBackground(Color.cyan);   jb1=new JButton("删除"); jb2=new JButton("返回"); jb1.addActionListener(this); jb2.addActionListener(this);   jb1.setBorder(null); jb2.setBorder(null); jb1.setFont(new Font("华文中宋", Font.BOLD, 20)); jb2.setFont(new Font("华文中宋", Font.BOLD, 20));     jtf1=new JTextField(10); jlb1=new JLabel("删除信息");   jlb1.setFont(new Font("华文行楷", Font.BOLD, 30));          jlb2=new JLabel("请输入学号:");     jlb2.setFont(new Font("华文行楷", Font.BOLD, 20));          jp1.add(jlb1);          jp2.add(jlb2);     jp2.add(jtf1);     jp2.add(jb1);            jp3.add(jb2);          this.add(jp1);     this.add(jp2);     this.add(jp3);          this.setLayout(new GridLayout(3,1));     this.setTitle("删除");     this.setSize(500,400);     this.setLocation(200,150);     this.setVisible(true);     this.setResizable(false);          try { File csv = new File("E://stu.txt"); // CSV文件   BufferedReader br = new BufferedReader(new FileReader(csv));  // 读取直到最后一行    String line = ""; while ((line = br.readLine()) != null) {        // 把一行数据分割成多个字段        StringTokenizer st1 = new StringTokenizer(line, ",");       Student3 st2= new Student3(st1.nextToken(),st1.nextToken(),st1.nextToken(),st1.nextToken(),st1.nextToken());       as3.add(st2);       }    br.close(); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub boolean flag=false; if(e.getActionCommand()=="删除"){ if(jtf1.getText().isEmpty())          {              JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);          } for(Student3 student :as3){ if(student.number.equals(jtf1.getText())){ as3.remove(student); File txt = new File("E://stu.txt"); // CSV文件   txt.delete();   try { txt.createNewFile(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } flag=true; break; } } if(flag){ try { File txt = new File("E://stu.txt"); bfw = new BufferedWriter(new FileWriter(txt,true)); for(Student3 student1 :as3){ bfw.write(student1.name+","+student1.gendar+","+student1.age+","+student1.number+","+student1.score+"\r\n"); System.out.println(student1.name+","+student1.gendar+","+student1.age+","+student1.number+","+student1.score); } } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } JOptionPane.showMessageDialog(null,"已删除学号为:"+jtf1.getText()+"的学生信息","系统提示",JOptionPane.INFORMATION_MESSAGE); try { bfw.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } }else{ JOptionPane.showMessageDialog(null,"无学号为:"+jtf1.getText()+"的信息!","提示消息",JOptionPane.WARNING_MESSAGE); } }else if(e.getActionCommand()=="返回"){ dispose(); } }        }          //--------------------------按姓名删除菜单----------------、      class Delete_Name extends JFrame implements ActionListener{ JButton jb1,jb2; JPanel jp1,jp2,jp3,jp4,jp5; JTextField jtf1; JLabel jlb1,jlb2,jlb3; ArrayList<Student3> as3 = new ArrayList<Student3>(); BufferedWriter bfw; public void delete_name(){ jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel(); jp1.setBackground(Color.cyan); jp2.setBackground(Color.cyan); jp3.setBackground(Color.cyan); jp3.setBackground(Color.cyan);   jb1=new JButton("删除"); jb2=new JButton("返回"); jb1.addActionListener(this); jb2.addActionListener(this); jb1.setFont(new Font("华文中宋", Font.BOLD, 20)); jb2.setFont(new Font("华文中宋", Font.BOLD, 20));     jb1.setBorder(null); jb2.setBorder(null);   jtf1=new JTextField(10); jlb1=new JLabel("删除信息");       jlb1.setFont(new Font("华文行楷", Font.BOLD, 30));          jlb2=new JLabel("请输入姓名:");     jlb2.setFont(new Font("华文行楷", Font.BOLD, 20));          jp1.add(jlb1);          jp2.add(jlb2);     jp2.add(jtf1);     jp2.add(jb1);            jp3.add(jb2);          this.add(jp1);     this.add(jp2);     this.add(jp3);          this.setLayout(new GridLayout(3,1));     this.setTitle("删除");     this.setSize(500,400);     this.setLocation(200,150);     this.setVisible(true);     this.setResizable(false);          try { File csv = new File("E://stu.txt"); // CSV文件   BufferedReader br = new BufferedReader(new FileReader(csv));  // 读取直到最后一行    String line = ""; while ((line = br.readLine()) != null) {        // 把一行数据分割成多个字段        StringTokenizer st1 = new StringTokenizer(line, ",");       Student3 st2= new Student3(st1.nextToken(),st1.nextToken(),st1.nextToken(),st1.nextToken(),st1.nextToken());       as3.add(st2);       }    br.close(); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub boolean flag=false; if(e.getActionCommand()=="删除"){ if(jtf1.getText().isEmpty())          {              JOptionPane.showMessageDialog(null,"请输入姓名!","提示消息",JOptionPane.WARNING_MESSAGE);          } for(Student3 student :as3){ if(student.name.equals(jtf1.getText())){ as3.remove(student); File txt = new File("E://stu.txt"); // CSV文件   txt.delete();   try { txt.createNewFile(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } jtf1.setText(""); flag=true; break; } } if(flag){ try { File txt = new File("E://stu.txt"); bfw = new BufferedWriter(new FileWriter(txt,true)); for(Student3 student1 :as3){ bfw.write(student1.name+","+student1.gendar+","+student1.age+","+student1.number+","+student1.score+"\r\n"); System.out.println(student1.name+","+student1.gendar+","+student1.age+","+student1.number+","+student1.score); } } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } JOptionPane.showMessageDialog(null,"已删除姓名为:"+jtf1.getText()+"的学生信息","系统提示",JOptionPane.INFORMATION_MESSAGE); try { bfw.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } }else{ JOptionPane.showMessageDialog(null,"无姓名为:"+jtf1.getText()+"的信息!","提示消息",JOptionPane.WARNING_MESSAGE); } }else if(e.getActionCommand()=="返回"){ dispose(); } }        }            class Student3{ String  name; String gendar; String number; String age; String score; public Student3(String name,String gendar,String age,String number,String score){ this.name=name; this.gendar=gendar; this.age=age; this.number=number;                       this.score=score; } }      package MyStu; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.table.JTableHeader; import javax.swing.table.TableModel; import javax.swing.table.TableRowSorter;  class readinfo extends JFrame implements ActionListener { JLabel jlb; JButton jb1; JPanel jp1,jp2; public void Readinfo(){ jp1=new JPanel(); jp2=new JPanel(); jp1.setBackground(Color.cyan); jp2.setBackground(Color.cyan); jb1=new JButton("返回"); jb1.addActionListener(this); jb1.setFont(new Font("华文中宋", Font.BOLD, 18)); jb1.setBorder(null); jlb=new JLabel("所有信息如下"); jlb.setFont(new Font("华文行楷", Font.BOLD, 30)); JTableHeader tableH;  String col[]={"姓名","性别","年龄","学号","成绩"};          final DefaultTableModel tableModel = new DefaultTableModel(col, 0);        JTable table = new JTable(tableModel);        table.setEnabled(false);          JScrollPane pane = new JScrollPane(table);         pane.setBackground(Color.cyan);                jp1.add(jlb);       jp2.add(jb1); ArrayList<Student1> as1 = new ArrayList<Student1>(); try { File csv = new File("E://stu.txt"); // CSV文件     BufferedReader br = new BufferedReader(new FileReader(csv));      String line = "";    while ((line = br.readLine()) != null) {                StringTokenizer st = new StringTokenizer(line, ",");       Student1 st1= new Student1(st.nextToken(),st.nextToken(),st.nextToken(),st.nextToken(),st.nextToken());       as1.add(st1);       }    br.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }   this.add(jp1); this.add(pane); this.add(jp2);      this.setBackground(Color.cyan);    this.setLayout(new GridLayout(3,1));      this.setTitle("显示信息");               this.setSize(500,400);                  this.setLocation(200, 150);         this.setVisible(true);       this.setResizable(false);                table.setBackground(new Color(144,238,144));             table.setForeground(new Color(100,100,100)) ;             table.setGridColor(new Color(105 ,105, 105));             tableH = table.getTableHeader();                      tableH.setBackground(new Color(200, 200, 200));                        tableH.setForeground(new Color(0,0,205));          for (Student1 stu : as1) {              Object [] data ={stu.name,stu.gendar,stu.age,stu.number,stu.score};              tableModel.addRow(data);          }          tableModel.fireTableDataChanged();           RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tableModel);           table.setRowSorter(sorter);           this.getContentPane().add(pane, BorderLayout.CENTER);   } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getActionCommand()=="返回"){ dispose(); } }    }    class Student1{ String  name; String gendar; String number; String age; String score; public Student1(String name,String gendar,String age,String number,String score){ this.name=name; this.gendar=gendar; this.age=age; this.number=number;                       this.score=score; } }                      package MyStu; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.StringTokenizer; import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.table.JTableHeader; class scaninfo extends JFrame implements ActionListener { JButton jb1,jb2,jb5; JLabel jlb1,jlb2,jlb3,jlb4; JPanel jp1,jp2,jp7; public void  Scaninfo(){ jp1=new JPanel(); jp2=new JPanel(); jp7=new JPanel(); jp1.setBackground(Color.cyan); jp2.setBackground(Color.cyan); jp7.setBackground(Color.cyan);   jb1=new JButton("按学号查找"); jb2=new JButton("按姓名查找"); jb5=new JButton("返回"); jb1.setFont(new Font("华文中宋", Font.BOLD, 20)); jb2.setFont(new Font("华文中宋", Font.BOLD, 20)); jb5.setFont(new Font("华文中宋", Font.BOLD, 15)); jb1.addActionListener(this); jb2.addActionListener(this); jb5.addActionListener(this); jb1.setBorder(null); jb2.setBorder(null); jb5.setBorder(null); jlb1=new JLabel("查找信息");   jlb1.setFont(new Font("华文行楷", Font.BOLD, 30));     jp1.add(jlb1);          jp2.add(jb1);     jp2.add(jb2);          jp7.add(jb5);          this.add(jp1);     this.add(jp2);     this.add(jp7);          this.setLayout(new GridLayout(3,1));     this.setTitle("查询");     this.setSize(500,400);     this.setLocation(200,150);     this.setVisible(true);     this.setResizable(false); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getActionCommand()=="按学号查找"){ Lookup_number look_n=new Lookup_number(); look_n.lookup_number(); }else if(e.getActionCommand()=="按姓名查找"){ Lookup_name look_ne=new Lookup_name(); look_ne.lookup_name(); }else if(e.getActionCommand()=="返回"){ dispose(); } } //---------------按学号查询界面---------------- } //---------------按学号查询界面---------------- class Lookup_number extends JFrame implements ActionListener{ JButton jb1,jb2; JPanel jp1,jp2,jp3,jp4,jp5; JTextField jtf1; JLabel jlb1,jlb2,jlb3; JTable jtb; ArrayList<Student2> as2 = new ArrayList<Student2>(); String col[]={"姓名","性别","年龄","学号","成绩"};  final DefaultTableModel tableModel = new DefaultTableModel(col, 0); public void lookup_number(){ jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel(); jp1.setBackground(Color.cyan); jp2.setBackground(Color.cyan); jp3.setBackground(Color.cyan); jp4.setBackground(Color.cyan);   JTableHeader tableH;  JTable table = new JTable(tableModel);    table.setEnabled(false);    table.setBackground(new Color(144,238,144));             table.setForeground(new Color(100,100,100)) ;             table.setGridColor(new Color(105 ,105, 105));             tableH = table.getTableHeader();                     tableH.setBackground(new Color(200, 200, 200));                               tableH.setForeground(new Color(0,0,205));   JScrollPane pane = new JScrollPane(table);    jb1=new JButton("查询"); jb2=new JButton("返回"); jb1.setFont(new Font("华文中宋", Font.BOLD, 18)); jb2.setFont(new Font("华文中宋", Font.BOLD, 18)); jb1.addActionListener(this); jb2.addActionListener(this); jb1.setBorder(null); jb2.setBorder(null); jtf1=new JTextField(10); jlb1=new JLabel("按学号查询信息"); jlb1.setFont(new Font("华文行楷", Font.BOLD, 30)); jlb2=new JLabel("请输入学号:"); jlb2.setFont(new Font("华文行楷", Font.BOLD, 20)); jlb3=new JLabel("查询信息如下"); jlb2.setFont(new Font("华文行楷", Font.BOLD, 25)); jp1.add(jlb1); jp2.add(jlb2); jp2.add(jtf1); jp2.add(jb1); jp3.add(jlb3); jp4.add(jb2); this.add(jp1); this.add(jp2); this.add(jp3); this.add(pane); this.add(jp4); this.setLayout(new GridLayout(5,1));          //给窗口设置标题      this.setTitle("查询结果");       //设置窗体大小          this.setSize(500,400);          //设置窗体初始位置          this.setLocation(200, 150);                   //显示窗体          this.setVisible(true);          this.setResizable(false);                  try { File csv = new File("E://stu.txt"); // CSV文件   BufferedReader br = new BufferedReader(new FileReader(csv));  // 读取直到最后一行    String line = ""; while ((line = br.readLine()) != null) {        // 把一行数据分割成多个字段        StringTokenizer st = new StringTokenizer(line, ",");       Student2 st1= new Student2(st.nextToken(),st.nextToken(),st.nextToken(),st.nextToken(),st.nextToken());       as2.add(st1);       }    br.close(); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }         } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getActionCommand()=="查询"){ boolean flag=true; tableModel.setRowCount(0); // 之前的table一定要清零!                     for (Student2 student : as2) {                                    System.out.println(student.name+student.gendar+student.age+student.number+student.score);                    if(student.number.equals(jtf1.getText())){                  Object [] data1 ={student.name,student.gendar,student.age,student.number,student.score};                    tableModel.addRow(data1);                    flag=false;                  JOptionPane.showMessageDialog(null,"已查询到学号为:"+jtf1.getText()+"的学生信息","系统提示",JOptionPane.INFORMATION_MESSAGE);                  }                                }                if(flag){             JOptionPane.showMessageDialog(null,"无学号为:"+jtf1.getText()+"的学生信息","系统提示",JOptionPane.INFORMATION_MESSAGE);              } }else if(e.getActionCommand()=="返回"){ dispose(); } } } //------------------按姓名查找界面------------------------ class Lookup_name extends JFrame implements ActionListener{ JButton jb1,jb2; JPanel jp1,jp2,jp3,jp4,jp5; JTextField jtf1; JLabel jlb1,jlb2,jlb3; JTable jtb; ArrayList<Student2> as2 = new ArrayList<Student2>(); String col[]={"姓名","性别","年龄","学号","成绩"};  final DefaultTableModel tableModel = new DefaultTableModel(col, 0); public void lookup_name(){ jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel(); jp1.setBackground(Color.cyan); jp2.setBackground(Color.cyan); jp3.setBackground(Color.cyan); jp4.setBackground(Color.cyan); JTableHeader tableH;  JTable table = new JTable(tableModel);    table.setEnabled(false);      table.setEnabled(false);    table.setBackground(new Color(144,238,144));             table.setForeground(new Color(100,100,100)) ;             table.setGridColor(new Color(105 ,105, 105));             tableH = table.getTableHeader();             //设置表头的背景色             tableH.setBackground(new Color(200, 200, 200));             //设置表头的文字颜色                        tableH.setForeground(new Color(0,0,205));   JScrollPane pane = new JScrollPane(table);    jb1=new JButton("查询"); jb2=new JButton("返回"); jb1.addActionListener(this); jb2.addActionListener(this); jb1.setBorder(null); jb2.setBorder(null); jtf1=new JTextField(10); jlb1=new JLabel("按姓名查询信息"); jlb1.setFont(new Font("华文行楷", Font.BOLD, 30)); jlb2=new JLabel("请输入姓名:"); jlb2.setFont(new Font("华文行楷", Font.BOLD, 20)); jlb3=new JLabel("查询信息如下"); jlb3.setFont(new Font("华文行楷", Font.BOLD, 25)); jp1.add(jlb1); jp2.add(jlb2); jp2.add(jtf1); jp2.add(jb1); jp3.add(jlb3); jp4.add(jb2); this.add(jp1); this.add(jp2); this.add(jp3); this.add(pane); this.add(jp4); this.setLayout(new GridLayout(5,1));                 this.setTitle("查询结果");              this.setSize(500,400);                  this.setLocation(200, 150);                         this.setVisible(true);          this.setResizable(false);                  try { File txt = new File("E://stu.txt");    BufferedReader br = new BufferedReader(new FileReader(txt));     String line = ""; while ((line = br.readLine()) != null) {           StringTokenizer st = new StringTokenizer(line, ",");       Student2 st1= new Student2(st.nextToken(),st.nextToken(),st.nextToken(),st.nextToken(),st.nextToken());       as2.add(st1);       }    br.close(); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }         } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getActionCommand()=="查询"){ tableModel.setRowCount(0);        boolean flag=true;              for (Student2 student : as2) {                                    System.out.println(student.name+student.gendar+student.age+student.number+student.score);                    if(student.name.equals(jtf1.getText())){                  Object [] data1 ={student.name,student.gendar,student.age,student.number,student.score};                    tableModel.addRow(data1);                    JOptionPane.showMessageDialog(null,"已查询到姓名为:"+jtf1.getText()+"的学生信息","系统提示",JOptionPane.INFORMATION_MESSAGE);                  flag=false;                  }                               }                if(flag){             JOptionPane.showMessageDialog(null,"无姓名为:"+jtf1.getText()+"的学生信息","系统提示",JOptionPane.INFORMATION_MESSAGE);              }              }else if(e.getActionCommand()=="返回"){ dispose(); } } } class Student2{ String  name; String gendar; String number; String age; String score; public Student2(String name,String gendar,String age,String number,String score){ this.name=name; this.gendar=gendar; this.age=age; this.number=number;                       this.score=score; } }

转载请注明原文地址: https://www.6miu.com/read-47310.html

最新回复(0)