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

📄 inquest.java

📁 《Java课程设计》第二版
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class Inquest extends JDialog implements ActionListener{
   StudentPicture pic;
   PrintJob print; 
   Graphics g=null;
   HashMap<String,Student> 基本信息表; 
   JTextField 学号,姓名,专业,年级,出生;  
   JRadioButton 男,女;
   JButton 查询,打印文本及照片,打印文本,打印照片;
   ButtonGroup group=null;
   FileInputStream inOne=null;
   ObjectInputStream inTwo=null;
   File systemFile=null;
   JPanel messPanel;
   Student stu; 
   public Inquest(File file){
      setTitle("查询对话框"); 
      setModal(false); 
      systemFile=file;
      pic=new StudentPicture();
      学号=new JTextField(6);
      查询=new JButton("查询");
      学号.addActionListener(this);
      查询.addActionListener(this);
      打印文本及照片=new JButton("打印文本及照片");
      打印文本=new JButton("打印文本");
      打印照片=new JButton("打印照片");
      打印文本及照片.addActionListener(this);
      打印文本.addActionListener(this);
      打印照片.addActionListener(this);
      打印文本及照片.setEnabled(false);
      打印文本.setEnabled(false);
      打印照片.setEnabled(false);     
      姓名=new JTextField(5); 
      姓名.setEditable(false);
      专业=new JTextField(5);
      专业.setEditable(false);
      年级=new JTextField(5);
      年级.setEditable(false);
      出生=new JTextField(5);
      出生.setEditable(false);
      男=new JRadioButton("男",false);
      女=new JRadioButton("女",false);
      group=new ButtonGroup();
      group.add(男);
      group.add(女);
      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 boxH=Box.createVerticalBox();  
      boxH.add(box1);
      boxH.add(box2);
      boxH.add(box3);
      boxH.add(box4);
      boxH.add(box5);
      boxH.add(box6);
      boxH.add(Box.createVerticalGlue()); 
      messPanel=new JPanel();
      messPanel.add(boxH);
      JSplitPane splitH=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,messPanel,pic);
      add(splitH,BorderLayout.CENTER); 
      JPanel pSouth=new JPanel();
      pSouth.add(打印文本及照片);
      pSouth.add(打印文本);
      pSouth.add(打印照片);
      add(pSouth,BorderLayout.SOUTH);  
      validate();
      setVisible(false);
      setSize(360,230);
      addWindowListener(new WindowAdapter(){
                    public void windowClosing(WindowEvent e){
                         setVisible(false);
                    }});
   }
   public void actionPerformed(ActionEvent e){
      if(e.getSource()==查询||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)){          
                   stu=基本信息表.get(number);
                   姓名.setText(stu.getName());
                   专业.setText(stu.getDisciping());
                   年级.setText(stu.getGrade());
                   出生.setText(stu.getBorth()); 
                   if(stu.getSex().equals("男"))
                        男.setSelected(true);
                   else
                        女.setSelected(true);
                   pic.setImage(stu.getImagePic());
                   pic.repaint();
                   打印文本及照片.setEnabled(true);
                   打印文本.setEnabled(true);
                   打印照片.setEnabled(true);
              }
              else{
                  打印文本及照片.setEnabled(false);
                  打印文本.setEnabled(false);
                  打印照片.setEnabled(false);
                  String warning="该学号不存在!";
                  JOptionPane.showMessageDialog(this,warning,"警告",
                                               JOptionPane.WARNING_MESSAGE);
                  clearMess();
              }
         }
         else{
              打印文本及照片.setEnabled(false);
              打印文本.setEnabled(false);
              打印照片.setEnabled(false);
              String warning="必须要输入学号!";
              JOptionPane.showMessageDialog(this,warning,"警告",
                                            JOptionPane.WARNING_MESSAGE);
             }
      }
      else if(e.getSource()==打印文本及照片){
         try{
            print=getToolkit().getPrintJob(new JFrame(),"打印",new Properties());
            g=print.getGraphics();
            g.translate(120,200);//在打印页的坐标(120,200)开始打印文本内容
            int w=messPanel.getBounds().width;
            messPanel.printAll(g);
            g.translate(w,0);   //在打印页的坐标(120+w,200)处打印照片
            pic.printAll(g);
            姓名.setText(stu.getName());
            g.dispose();          
            print.end();
         }
         catch(Exception exp){}    
      }
      else if(e.getSource()==打印文本){
         try{ 
           print=getToolkit().getPrintJob(new JFrame(),"打印",new Properties());
           g=print.getGraphics();
           g.translate(120,200);//在打印页的坐标(120,200)开始打印文本内容
           messPanel.printAll(g);
           g.dispose();          
           print.end();
         }
         catch(Exception exp){} 
      }  
      else if(e.getSource()==打印照片){
         try{ 
           print=getToolkit().getPrintJob(new JFrame(),"打印",new Properties());
           g=print.getGraphics();
           int w=messPanel.getBounds().width;
           g.translate(120+w,200);//在打印页的坐标(120+w,200)处打印照片
           pic.printAll(g);
           g.dispose();          
           print.end();
         }
         catch(Exception exp){}
      } 
   }
   public void clearMess(){
       学号.setText(null);
       姓名.setText(null);
       年级.setText(null);
       出生.setText(null);
       专业.setText(null);
       pic.setImage(null);
       pic.repaint();
   }
}

⌨️ 快捷键说明

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