第一题:
import java.io.*;class Employee implements Serializable
{
String name = null;
int ID  = 0;
char gender = 'M';//M:male,F:female
Employee(String name,int ID,char gender)
{
this.name  = name;
this.ID  = ID;
this.gender = gender;
}
}

解决方案 »

  1.   

    第二题:
    在按钮事件中,加入下面语句(界面略,比较简单),
    三个文本框t1,t2,t3,分别输入name、ID、gender
    Employee employee = new Employee(t1.getText(),Integer.parseInt(t2.getText()),t3.getText().charAt(0));
    这样就生成了一个新的对象,追加到employee_obj.ser中如下,
    try {
    FileOutputStream objfile = new FileOutputStream("employee_obj.ser");
    ObjectOutputStream p = new ObjectOutputStream(objfile);
    p.writeObject(employee); 
    p.flush();
    objfile.close();
    }
    catch (Exception e) 
    {
    e.printStackTrace();
    }
      

  2.   

    import java.awt.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import javax.swing.event.*;
    import javax.swing.text.*;public class SampleTextFrame extends JFrame implements FontListener{
    protected FontPropertiesPanel propertiesPanel;
    protected JTextField sampleText;
    protected JLabel displayArea; public static void main(String[] args){
    SampleTextFrame str = new SampleTextFrame();
    str.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    str.setVisible(true);
    } public SampleTextFrame(){
    super();
    createComponents();
    createDocumentListener();
    buildLayout();
    displayArea.setFont(propertiesPanel.getSelectedFont());
    propertiesPanel.setFontListener(this);
    pack();
    }
      protected void createComponents(){
    propertiesPanel = new FontPropertiesPanel();
    sampleText = new JTextField(20);
    displayArea = new JLabel("");
    displayArea.setPreferredSize(new Dimension(200, 75));
    displayArea.setMinimumSize(new Dimension(200, 75));
    } protected void createDocumentListener(){
    Document document = sampleText.getDocument();
    document.addDocumentListener(new DocumentListener(){
    public void changedUpdate(DocumentEvent event){
    handleDocumentUpdate();
    }
    public void insertUpdate(DocumentEvent event){
    handleDocumentUpdate();
    } public void removeUpdate(DocumentEvent evnet){
    handleDocumentUpdate();
    }
    }
    );
    } protected void buildLayout(){
    Container pane = getContentPane();
    GridBagConstraints gbc = new GridBagConstraints();
    GridBagLayout gbl = new GridBagLayout();
    pane.setLayout(gbl); gbc.insets = new Insets(5,10,5,10);
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.weightx = 1; gbc.gridx = 0;
    BevelBorder bb = new BevelBorder(BevelBorder.RAISED);
    TitledBorder tb = new TitledBorder(bb, "Font");
    propertiesPanel.setBorder(tb);
    gbl.setConstraints(propertiesPanel, gbc);
    pane.add(propertiesPanel); gbl.setConstraints(sampleText, gbc);
    pane.add(sampleText);
    gbl.setConstraints(displayArea, gbc);
    pane.add(displayArea);
    } protected void handleDocumentUpdate(){
    displayArea.setText(sampleText.getText());
    } public void fontChanged(Font newFont){
    displayArea.setFont(newFont);
    }
    }import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;public class FontPropertiesPanel extends JPanel{
    protected JList nameList;
    protected JComboBox sizeBox;
    protected JCheckBox boldBox;
    protected JCheckBox italicBox;
    protected FontListener listener; public final static int[] fontSizes = {10,13,14,18,24,32,48,64}; public FontPropertiesPanel(){
    super();
    createComponents();
    buildLayout();
    } protected void handleFontPropertyChange(){
    listener.fontChanged(getSelectedFont());
    } public void setFontListener(FontListener fl){
    listener = fl;
    } protected void buildLayout(){
    JLabel label;
    GridBagConstraints gbc = new GridBagConstraints();
    GridBagLayout gbl = new GridBagLayout();
    setLayout(gbl); gbc.anchor = GridBagConstraints.WEST;
    gbc.insets = new Insets(5,10,5,10); gbc.gridx = 0;
    label = new JLabel("Name:", JLabel.LEFT);
    gbl.setConstraints(label, gbc);
    add(label);
    label = new JLabel("Size:", JLabel.LEFT);
    gbl.setConstraints(label, gbc);
    add(label);
    gbl.setConstraints(label, gbc); 
    gbl.setConstraints(boldBox, gbc);
    add(boldBox);
     
    gbc.gridx++;
    nameList.setVisibleRowCount(3);
    JScrollPane jsp = new JScrollPane(nameList);
    gbl.setConstraints(jsp, gbc);
    add(jsp);
    gbl.setConstraints(sizeBox, gbc);
    add(sizeBox);
    gbl.setConstraints(italicBox, gbc);
    add(italicBox);
    } protected void createComponents(){
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    String[] names = ge.getAvailableFontFamilyNames();
    nameList = new JList(names);
    nameList.setSelectedIndex(0);
    nameList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    nameList.addListSelectionListener(new ListSelectionListener(){
    public void valueChanged(ListSelectionEvent event){
    handleFontPropertyChange();
    }
    }
    );
    Integer sizes[] = new Integer[fontSizes.length];
    for(int i=0; i<sizes.length; i++){
    sizes[i] = new Integer(fontSizes[i]);
    } sizeBox = new JComboBox(sizes);
    sizeBox.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
    handleFontPropertyChange();
    }
    }
    );
    boldBox = new JCheckBox("Bold");
    boldBox.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
    handleFontPropertyChange();
    }
    }
    ); italicBox = new JCheckBox("Italic");
    italicBox.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
    handleFontPropertyChange();
    }
    }
    );
    }
    public Font getSelectedFont(){
    String name = (String)(nameList.getSelectedValue());
    int style = 0;
    style += (boldBox.isSelected() ? Font.BOLD : 0);
    style += (italicBox.isSelected() ? Font.ITALIC : 0);
    int size = ((Integer)(sizeBox.getSelectedItem())).intValue();
    return new Font(name, style, size);
    }
    }
      

  3.   

    不是吧?这  dearwolf (一笑倾城)  是个啥?居然连作业都有人写?
      

  4.   

    //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;
    }
      

  5.   

    //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);
      }
    }
      

  6.   

    AWT的事件机制是Responsibity Chains早就废弃了
    你们老师水平真低,不用swing
    swing的事件机制是observer