⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modifysituation.java

📁 《Java课程设计》第二版
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
import javax.swing.filechooser.*;
public class ModifySituation extends JPanel implements ActionListener{
    StudentPicture pic;
    HashMap<String,Student> 基本信息表=null;                           
    JTextField 学号,姓名,年级,出生; 
    JComboBox 专业;
    JButton 选择照片;                
    JRadioButton 男,女;
    ButtonGroup group=null;
    JButton 开始修改,录入修改,重置;
    FileInputStream inOne=null;
    ObjectInputStream inTwo=null;
    FileOutputStream outOne=null;
    ObjectOutputStream outTwo=null;
    File systemFile,imagePic;
    JComboBox oldMess;
    Student stu=null; 
    public ModifySituation(File file){
       systemFile=file;
       pic=new StudentPicture();
       学号=new JTextField(6);
       姓名=new JTextField(6);                                
       专业=new JComboBox();
       try{
           FileReader  inOne=new FileReader("专业.txt");
           BufferedReader inTwo= new BufferedReader(inOne);
           String s=null;
           int i=0;
           while((s=inTwo.readLine())!=null)
              专业.addItem(s);
           inOne.close();
           inTwo.close();
       }
       catch(IOException exp){
         专业.addItem("数学");
         专业.addItem("计算机科学与技术");
       } 
       年级=new JTextField(6);
       出生=new JTextField(6);
       选择照片=new JButton("选择");
       group=new ButtonGroup();
       男=new JRadioButton("男",true);
       女=new JRadioButton("女",false);
       group.add(男);
       group.add(女);
       oldMess=new JComboBox();
       开始修改=new JButton("开始修改");
       录入修改=new JButton("录入修改");
       录入修改.setEnabled(false);
       选择照片.setEnabled(false);
       重置=new JButton("重置");
       学号.addActionListener(this);
       开始修改.addActionListener(this);
       录入修改.addActionListener(this);
       重置.addActionListener(this);
       选择照片.addActionListener(this); 
       Box box1=Box.createHorizontalBox();              
       box1.add(new JLabel("输入要修改信息的学号:",JLabel.CENTER));
       box1.add(学号);
       box1.add(开始修改);
       Box box2=Box.createHorizontalBox();              
       box2.add(new JLabel("(新)姓名:",JLabel.CENTER));
       box2.add(姓名);
       Box box3=Box.createHorizontalBox();              
       box3.add(new JLabel("(新)性别:",JLabel.CENTER));
       box3.add(男);
       box3.add(女);
       Box box4=Box.createHorizontalBox();              
       box4.add(new JLabel("(新)专业:",JLabel.CENTER));
       box4.add(专业);
       Box box5=Box.createHorizontalBox();              
       box5.add(new JLabel("(新)年级:",JLabel.CENTER));
       box5.add(年级);
       Box box6=Box.createHorizontalBox();              
       box6.add(new JLabel("(新)出生:",JLabel.CENTER));
       box6.add(出生);
       Box box7=Box.createHorizontalBox();              
       box7.add(new JLabel("学生已有的数据:",JLabel.CENTER));
       box7.add(oldMess); 
       Box boxH=Box.createVerticalBox();              
       boxH.add(box1);
       boxH.add(box2);
       boxH.add(box3);
       boxH.add(box4);
       boxH.add(box5);
       boxH.add(box6);
       boxH.add(box7);
       boxH.add(Box.createVerticalGlue());
       JPanel picPanel=new JPanel(); 
       picPanel.setBackground(Color.green);             
       picPanel.add(new JLabel("选择照片:",JLabel.CENTER));
       picPanel.add(选择照片);
       JPanel putButton=new JPanel();
       putButton.setBackground(Color.yellow); 
       putButton.add(录入修改);
       putButton.add(重置);          
       JPanel messPanel=new JPanel();
       messPanel.setBackground(Color.pink);
       messPanel.add(boxH);
       setLayout(new BorderLayout());
       JSplitPane splitV=
       new JSplitPane(JSplitPane.VERTICAL_SPLIT,picPanel,pic);
       JSplitPane splitH=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,messPanel,splitV);
       add(splitH,BorderLayout.CENTER);
       add(putButton,BorderLayout.SOUTH); 
       validate();
    }
    public void actionPerformed(ActionEvent e){
     if(e.getSource()==开始修改||e.getSource()==学号){
        oldMess.removeAllItems();
        String number="";
        imagePic=null;
        stu=null; 
        number=学号.getText();
        if(number.length()>0){
          try {
               inOne=new FileInputStream(systemFile);
               inTwo=new ObjectInputStream(inOne);
               基本信息表=(HashMap<String,Student>)inTwo.readObject();
               inOne.close();
               inTwo.close();
          }
          catch(Exception ee){}
          if(基本信息表.containsKey(number)){          
               录入修改.setEnabled(true);
               选择照片.setEnabled(true);
               stu=基本信息表.get(number);
               oldMess.addItem("姓名:"+stu.getName());
               oldMess.addItem("专业:"+stu.getDisciping());
               oldMess.addItem("年级:"+stu.getGrade());
               oldMess.addItem("出生日期:"+stu.getBorth()); 
               if(stu.getSex().equals("男"))
                   男.setSelected(true);
               else
                   女.setSelected(true);
               imagePic=stu.getImagePic();
               pic.setImage(imagePic);
               pic.repaint();
               姓名.setText(stu.getName());
               年级.setText(stu.getGrade());
               出生.setText(stu.getBorth());
          }
          else{
               录入修改.setEnabled(false);
               选择照片.setEnabled(false);
               String warning="该学号不存在!";
               JOptionPane.showMessageDialog(this,warning,"警告",
                                             JOptionPane.WARNING_MESSAGE);
               clearMess();
          }
        }
        else{
          录入修改.setEnabled(false); 
          选择照片.setEnabled(false);
          String warning="必须要输入学号!";
          JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
          clearMess();
        }
     } 
     else if(e.getSource()==录入修改){
        String number="";
        number=学号.getText();
        if(number.length()>0){
            try {
                 inOne=new FileInputStream(systemFile);
                 inTwo=new ObjectInputStream(inOne);
                 基本信息表=(HashMap<String,Student>)inTwo.readObject();
                 inOne.close();
                 inTwo.close(); 
            }
            catch(Exception ee){}
            if(基本信息表.containsKey(number)){          
                  String question="该生基本信息已存在,您想修改他(她)的基本信息吗?";
                  JOptionPane.showMessageDialog(this,question,"警告",
                                                JOptionPane.QUESTION_MESSAGE);
                  String m="基本信息将被修改!";
                  int ok=JOptionPane.showConfirmDialog(this,m,"确认",
                        JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);
                  if(ok==JOptionPane.YES_OPTION){
                      String name=姓名.getText();
                      if(name.length()==0)
                         name=stu.getName();
                      String discipling=(String)专业.getSelectedItem();
                      if(discipling==null)
                         discipling=stu.getDisciping();  
                      String grade=年级.getText();
                      if(grade.length()==0)
                         grade=stu.getGrade(); 
                      String borth=出生.getText();
                      if(borth.length()==0)
                         borth=stu.getBorth();
                      String sex=null;
                      if(男.isSelected())
                          sex=男.getText();
                      else
                          sex=女.getText();
                       if(imagePic==null) 
                         imagePic=stu.getImagePic();  
                      Student  学生=new Student();
                      学生.setNumber(number);
                      学生.setName(name);
                      学生.setDiscipling(discipling);
                      学生.setGrade(grade);
                      学生.setBorth(borth);
                      学生.setSex(sex);
                      学生.setImagePic(imagePic);
                      try{
                         outOne=new FileOutputStream(systemFile);
                         outTwo=new ObjectOutputStream(outOne);
                         基本信息表.put(number,学生);
                         outTwo.writeObject(基本信息表);
  
                         outTwo.close();
                         outOne.close();
                         clearMess();
                      }
                      catch(Exception ee){}
                      录入修改.setEnabled(false);
                      选择照片.setEnabled(false); 
                  }
                  else if(ok==JOptionPane.NO_OPTION){
                      录入修改.setEnabled(true);
                      选择照片.setEnabled(true);
                  }
            }
            else{
              String warning="该学号没有基本信息,不能修改!";
              JOptionPane.showMessageDialog(this,warning,"警告",
                                            JOptionPane.WARNING_MESSAGE);
              录入修改.setEnabled(false); 
              选择照片.setEnabled(false);
              clearMess();
            }
        }
        else{
            String warning="必须要输入学号!";
            JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
            录入修改.setEnabled(false);
            clearMess();
            录入修改.setEnabled(false); 
            选择照片.setEnabled(false);
        }
     }
     else if(e.getSource()==选择照片){
         JFileChooser chooser=new JFileChooser();
         FileNameExtensionFilter filter = new FileNameExtensionFilter(
                                           "JPG & GIF Images", "jpg", "gif");
         chooser.setFileFilter(filter);
         int state=chooser.showOpenDialog(null);
         File choiceFile=chooser.getSelectedFile();
         if(choiceFile!=null&&state==JFileChooser.APPROVE_OPTION){
            选择照片.setText(choiceFile.getName());
            imagePic=choiceFile;
            pic.setImage(imagePic);
            pic.repaint();
         }
     } 
     else if(e.getSource()==重置){
        clearMess();
        录入修改.setEnabled(false);
        选择照片.setEnabled(false);
     }
   }
   public void clearMess(){
       学号.setText(null);
       姓名.setText(null);
       年级.setText(null);
       出生.setText(null);
       oldMess.removeAllItems();  
       选择照片.setText("选择");
       imagePic=null;
       pic.setImage(imagePic);
       pic.repaint();
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -