一道老师留的作业题

dearwolf 2003-10-20 05:38:11
一、作业目的:
1.掌握对象的序列化及对象状态的恢复
2.熟悉用AWT创建GUI(Menu,Button, Label, TextField等)
3.熟悉AWT的事件处理机制
4.java.io包中的类的选择及使用
5.可能需要使用java中的数据结构或者自定义的数据结构

二、作业要求:
1.创建一个可序列化的类Employee,
该类包含实例变量name, ID, gender。
2.创建用户友好的GUI,可由用户指定Employee的
 name, ID, gender生成新的对象,并序列化追加
 到指定的文件employee_obj.ser中。
3.从文件employee_obj.ser反序列化对象,用户可在GUI中
 逐个查看每个employee对象的name, ID, gender信息。
...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangFrame 2003-10-22
  • 打赏
  • 举报
回复
昨天不是给你了么。/
//misEmployee.java
import javax.swing.UIManager;
import java.awt.*;
import java.io.*;

public class misEmployee {
boolean packFrame = false;
public static Employee[] staff = new Employee[20];
//Construct the application
public misEmployee() {
misEployeeFrame frame = new misEployeeFrame();
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation( (screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}

//Main method
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e) {
e.printStackTrace();
}
new misEmployee();
try {
Employee[] staff = new Employee[100];
staff[0] = new Employee("Harry Hacker", 0, "male");
staff[1] = new Employee("Tony Tester", 1, "male");
staff[2] = new Employee("vivian", 2, "female");
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(
"employee_obj.ser"));
out.writeObject(staff);
out.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}

class Employee
implements Serializable {
public Employee(String n, int i, String g) {
name = n;
id = i;
gender = g;
}

public String getName() {
return name;
}

public int getId() {
return id;
}

public String getGender() {
return gender;
}

private String name;
private int id;
private String gender;
}
alienbat 2003-10-22
  • 打赏
  • 举报
回复
序列化是不是就是串行化?
xwlovesh 2003-10-22
  • 打赏
  • 举报
回复
找本书学学就可以解决。
httruly0 2003-10-22
  • 打赏
  • 举报
回复
SO EASY
yangFrame 2003-10-22
  • 打赏
  • 举报
回复
//??怎么贴少了?//这个是misEmployeeFrame.java
//帖子可以在我的专家门诊-〉我的问题中找到
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import misEmployee.*;
import javax.swing.border.*;

public class misEployeeFrame
extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanelCtrl = new JPanel();
JButton addButton = new JButton();
JButton check = new JButton();
JPanel jPanelInput = new JPanel();
JTextField addName = new JTextField(8);
JTextField addID = new JTextField(8);
JTextField addGender = new JTextField(8);
JPanel jPanelDisplay = new JPanel();
JTextArea textName = new JTextArea(1, 8);
JTextArea TextID = new JTextArea(1, 8);
JTextArea textGender = new JTextArea(1, 8);
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
JLabel jLabel5 = new JLabel();
JLabel jLabel6 = new JLabel();
TitledBorder titledBorder1;
TitledBorder titledBorder2;
TitledBorder titledBorder3;
JLabel jLabel7 = new JLabel();
JLabel jLabel8 = new JLabel();
Component component1;
JLabel jLabel9 = new JLabel();

//Construct the frame
public misEployeeFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}

//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel)this.getContentPane();
titledBorder1 = new TitledBorder("");
titledBorder2 = new TitledBorder("");
titledBorder3 = new TitledBorder("");
component1 = Box.createHorizontalStrut(8);
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(400, 150));
this.setTitle("misEployeeFrame");
addButton.setFont(new java.awt.Font("Dialog", 0, 12));
addButton.setForeground(Color.black);
addButton.setAlignmentX( (float) 0.0);
addButton.setActionCommand("");
addButton.setText("添加成员");
addButton.addActionListener(new misEployeeFrame_addButton_actionAdapter(this));
check.setFont(new java.awt.Font("Dialog", 0, 12));
check.setRolloverEnabled(false);
check.setText("察看");
check.addActionListener(new misEployeeFrame_check_actionAdapter(this));
addName.setText("");
addID.setText("");
addGender.setText("");

jPanelInput.setAlignmentY( (float) 0.5);
jPanelInput.setBorder(BorderFactory.createEtchedBorder());
textName.setEditable(false);
textName.setText("");
TextID.setBackground(Color.white);
TextID.setBorder(BorderFactory.createLineBorder(Color.black));
TextID.setDoubleBuffered(false);
TextID.setText("");
textGender.setDoubleBuffered(false);
textGender.setEditable(false);
textGender.setText("");
jPanelDisplay.setFont(new java.awt.Font("Dialog", 0, 11));
jPanelDisplay.setForeground(Color.black);
jPanelDisplay.setBorder(titledBorder3);
jPanelDisplay.setDoubleBuffered(true);
jPanelDisplay.setMinimumSize(new Dimension(200, 28));
jPanelDisplay.setOpaque(true);
jLabel1.setText("Name:");
jLabel2.setText("ID:");
jLabel3.setText("Gender");
jLabel4.setText("Name:");
jLabel5.setFont(new java.awt.Font("SansSerif", 0, 12));
jLabel5.setText("的成员");
jLabel6.setText("Gender:");
jLabel7.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel7.setMinimumSize(new Dimension(25, 16));
jLabel7.setText("添加:");
jLabel8.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel8.setRequestFocusEnabled(true);
jLabel8.setText("查询:");
jLabel9.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel9.setText("ID为");
jPanelCtrl.setBorder(BorderFactory.createEtchedBorder());
jPanelDisplay.add(jLabel8, null);
jPanelDisplay.add(jLabel4, null);
jPanelDisplay.add(textName, null);
jPanelDisplay.add(jLabel6, null);
jPanelDisplay.add(textGender, null);
jPanelDisplay.add(component1, null);
jPanelCtrl.add(addButton, null);
jPanelCtrl.add(check, null);
jPanelCtrl.add(jLabel9, null);
jPanelCtrl.add(TextID, null);
jPanelCtrl.add(jLabel5, null);
contentPane.add(jPanelInput, BorderLayout.NORTH);
jPanelInput.add(jLabel7, null);
jPanelInput.add(jLabel1, null);
jPanelInput.add(addName, null);
jPanelInput.add(jLabel2, null);
jPanelInput.add(addID, null);
jPanelInput.add(jLabel3, null);
jPanelInput.add(addGender, null);
contentPane.add(jPanelCtrl, BorderLayout.SOUTH);
contentPane.add(jPanelDisplay, BorderLayout.CENTER);
}

//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}

void addButton_actionPerformed(ActionEvent e) {
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(
"employee_obj.ser"));
Employee[] newStaff = (Employee[]) in.readObject();
in.close();

Employee one = new Employee(addName.getText(),
Integer.parseInt(addID.getText()),
addGender.getText());
newStaff[Integer.parseInt(addID.getText())] = one;

ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(
"employee_obj.ser"));
out.writeObject(newStaff);
out.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
addName.setText("");

addID.setText("");

addGender.setText("");
}

void check_actionPerformed(ActionEvent e) {
String n = null;
String g = null;
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(
"employee_obj.ser"));
Employee[] newStaff = (Employee[]) in.readObject();
n = newStaff[Integer.parseInt(TextID.getText())].getName();
g = newStaff[Integer.parseInt(TextID.getText())].getGender();
if (n == null) {
n = "查无此人";
}
if (g == null) {
g = n;
}
in.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
textName.setText(n);
textGender.setText(g);
}

}

class misEployeeFrame_addButton_actionAdapter
implements java.awt.event.ActionListener {
misEployeeFrame adaptee;

misEployeeFrame_addButton_actionAdapter(misEployeeFrame adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.addButton_actionPerformed(e);
}
}

class misEployeeFrame_check_actionAdapter
implements java.awt.event.ActionListener {
misEployeeFrame adaptee;

misEployeeFrame_check_actionAdapter(misEployeeFrame adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.check_actionPerformed(e);
}
}
dearwolf 2003-10-22
  • 打赏
  • 举报
回复
对不起,上一次的帖子找不到了
回去我调试一下代码
如果合适的话
我就结贴给分
谢谢啦

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧