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

📄 modifysituation.java~3~

📁 JAVA程序设计《Java课程设计》很不错的综合实验.为学生管理系统塔
💻 JAVA~3~
字号:

/////////修改界面//////
package student;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;

public class  ModifySituation extends JPanel implements  ActionListener
{
   Hashtable 基本信息表=null; //存放学生的基本信息的散列表
   JTextField 学号,姓名,专业,年级,出生; //输入学生基本信息的文本条
   JRadioButton 男,女;
   ButtonGroup group=null;
   JButton 开始修改,录入修改,重置;
   FileInputStream inOne=null;
   ObjectInputStream inTwo=null;
   FileOutputStream outOne=null;
   ObjectOutputStream outTwo=null;
   File file=null; // 存放散列表的文件
   public ModifySituation(File file)
   {
       this.file=file;
       学号=new JTextField(10);
       姓名=new JTextField(10);
       专业=new JTextField(10);
       年级=new JTextField(10);
       出生=new JTextField(10);
       group=new ButtonGroup();
       男=new JRadioButton("男",true);
       女=new JRadioButton("女",false);
       group.add(男);
       group.add(女);
       开始修改=new JButton("开始修改");
       录入修改=new JButton("录入修改");
       录入修改.setEnabled(false);
       重置=new JButton("重置");
       学号.addActionListener(this);
       开始修改.addActionListener(this);
       录入修改.addActionListener(this);
       重置.addActionListener(this);
       Box box1=Box.createHorizontalBox();  //创建6个水平box容器,从左向右排列组件
       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 boxH=Box.createHorizontalBox();  //创建一个垂直box容器,在其中自上向下排列
                                            //6个水平box容器。
       boxH.add(box1);
       boxH.add(box2);
       boxH.add(box3);
       boxH.add(box4);
       boxH.add(box5);
       boxH.add(box6);
       boxH.add(Box.createVerticalGlue());//使得垂直的box容器内的组件靠上对齐
       JPanel pCenter=new JPanel();
       pCenter.add(boxH);
       setLayout(new BorderLayout());
       add(pCenter,BorderLayout.CENTER);
       JPanel pSouth=new JPanel();
       pSouth.add(录入修改);
       pSouth.add(重置);
       add(pCenter,BorderLayout.SOUTH);
       validate();
   }

   public void actionPerformed(ActionEvent e)
   {
     if(e.getSource()==开始修改||e.getSource()==学号)
     {
       String number = "";
       number=学号.getText();

       if(number.length()>0)
       {
          try{
             inOne=new FileInputStream(file);
             inTwo=new ObjectInputStream(inOne);
             //首先到文件中读取Hashtable对象
             基本信息表=(Hashtable)inTwo.readObject();
             inOne.close();
             inTwo.close();
          }
          catch(Exception ee)
          {
          }
          if(基本信息表.containsKey(number))  //如果存在该生的基本信息
          {
             录入修改.setEnabled(true);
             Student stu=(Student)基本信息表.get(number);
             姓名.setText(stu.getName());
             专业.setText(stu.getDisciping());
             年级.setText(stu.getGrade());
             出生.setText(stu.getBorth());
             if(stu.getSex().equals("男"))
             {
               男.setSelected(true);
             }
             else
             {
               女.setSelected(true);
             }
          }
          else                //如果该生的基本信息不存在弹出警告对话框
          {
             录入修改.setEnabled(false);
             String warning="该生学号不存在!";
             JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
             学号.setText(null);
             姓名.setText(null);
             专业.setText(null);
             年级.setText(null);
             出生.setText(null);
          }
       }
       else  //如果学号输入框内容为空,弹出警告对话框
       {
         录入修改.setEnabled(false);
         String warning="必须输入学号!";
         JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
         学号.setText(null);
         姓名.setText(null);
         专业.setText(null);
         年级.setText(null);
         出生.setText(null);
       }
     }
     else if(e.getSource()==录入修改)
     {
         String number="";
         number=学号.getText();
         if(number.length()>0)
         {

           try{
            inOne=new FileInputStream(file);
            inTwo=new ObjectInputStream(inOne);
            基本信息表=(Hashtable)inTwo.readObject();//首先到文件中读取Hashtable对象。
            inOne.close();
            inTwo.close();
            }
            catch(Exception ee)
            {
            }
            if(基本信息表.containsKey(number))//如果该生的基本信息已经存在弹出提示对话框
            {
              String question="该生的基本信息已存在,你想修改他(她)的基本信息吗?";
              JOptionPane.showMessageDialog(this,question,"警告",JOptionPane.WARNING_MESSAGE);
              //弹出确认对话框。
              String m="该生的基本信息将被修改!";
              int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);
              if(ok==JOptionPane.YES_OPTION)
              {
                String name=姓名.getText();
                String discipling=专业.getText();
                String grade=年级.getText();
                String borth=出生.getText();
                String sex=null;
                if(男.isSelected())
                {
                  sex=男.getText();
                }
                else
                {
                  sex=女.getText();
                }
                Student 学生=new Student();
                学生.setNumber(number);
                学生.setName(name);
                学生.setDiscipling(discipling);
                学生.setGrade(grade);
                学生.setBorth(borth);
                学生.setSex(sex);
                try{  //将修改后的学生信息存入散列表文件。
                   outOne=new FileOutputStream(file);
                   outTwo=new ObjectOutputStream(outOne);
                   基本信息表.put(number,学生);
                   outTwo.writeObject(基本信息表);
                   outTwo.close();
                   outOne.close();
                   学号.setText(null);
                   姓名.setText(null);
                   专业.setText(null);
                   年级.setText(null);
                   出生.setText(null);

                }
              }
            }
         }

     }
   }
}

⌨️ 快捷键说明

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