📄 example11_7.java
字号:
/* 哈希表的应用 */
import java.util.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.io.*;
class 员工 extends JPanel
{
String 编号,姓名;
String 联系电话;
员工(String 编号,String 姓名,String 联系电话)
{
this.编号=编号;
this.姓名=姓名;
this.联系电话=联系电话;
}
}
class ShowWin extends JFrame implements ActionListener
{
Hashtable hashtable=new Hashtable();
JTextField 编号文本框=new JTextField(),
姓名文本框=new JTextField(),
联系电话文本框=new JTextField(),
查询文本框=new JTextField();
JButton b_add=new JButton("添加信息"),
b_show =new JButton("显示信息");
JTextField 信息显示条=new JTextField();
ShowWin()
{
super("信息输入和查询系统");
Container con=getContentPane();
JPanel 信息输入区=new JPanel();
信息输入区.setLayout(new GridLayout(5,2));
信息输入区.add(new Label("信息输入区:"));
信息输入区.add(new Label());
信息输入区.add(new Label("员工编号:"));
信息输入区.add(编号文本框);
信息输入区.add(new JLabel("员工姓名:"));
信息输入区.add(姓名文本框);
信息输入区.add(new Label("联系电话:"));
信息输入区.add(联系电话文本框);
信息输入区.add(new Label("点击添加:"));
信息输入区.add(b_add);
JPanel 查询显示区=new JPanel();
查询显示区.setLayout(new GridLayout(3,2));
查询显示区.add(new Label("信息查询区:"));
查询显示区.add(new Label());
查询显示区.add(new Label("输入员工的编号:"));
查询显示区.add(查询文本框);
查询显示区.add(b_show);
查询显示区.add(信息显示条);
JSplitPane split;
split=new JSplitPane(JSplitPane.VERTICAL_SPLIT,
信息输入区,查询显示区);
con.add(split,BorderLayout.CENTER);
con.add(new Label(" 信息输入和查询系统"),BorderLayout.NORTH);
b_add.addActionListener(this);
b_show.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b_add)
{
String 编号=null,姓名=null, 联系电话=null;
try {
编号=编号文本框.getText();
姓名=姓名文本框.getText();
联系电话=联系电话文本框.getText();
}
catch(NullPointerException ee)
{
编号文本框.setText("请输入编号");
姓名文本框.setText("请输入姓名");
联系电话文本框.setText("请输入联系电话");
}
员工 emp=new 员工(编号,姓名,联系电话);
hashtable.put(编号,emp);
try {
FileOutputStream file;
file=new FileOutputStream("员工信息.dat");
ObjectOutputStream out;
out=new ObjectOutputStream(file);
out.writeObject(hashtable);
out.close();
}
catch(IOException event){System.out.println(event);}
}
else if(e.getSource()==b_show)
{
String temp=null;
temp=查询文本框.getText();
信息显示条.setText(null);
try {
FileInputStream come_in;
come_in =new FileInputStream("员工信息.dat");
ObjectInputStream in;
in=new ObjectInputStream(come_in);
hashtable=(Hashtable)in.readObject();
in.close();
}
catch(ClassNotFoundException event)
{System.out.println(event);}
catch(IOException e2){System.out.println("文件无法读出");}
try{
员工 s=(员工)hashtable.get(temp);
信息显示条.setText("姓名:"+s.姓名+"编号:"+s.编号+"联系电话:"+s.联系电话);
}
catch(Exception e3){System.out.println("没有输入编号,文件读取错误");}
}
}
}
public class Example11_7
{
public static void main(String args[])
{
ShowWin win=new ShowWin();
win.setSize(400,300);
win.setVisible(true);
win.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -