第一题:
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;
}
}
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;
}
}
解决方案 »
- Java内存空间的问题
- 我想往记事本里面写数据,java代码怎么写啊?谢谢指教。。。
- 关于setLenient的问题
- 求教JAVA中Timer类的用法,能有源代码最好!谢谢
- FileInputStream与图片有没有什么关系
- 前学后忘,问大家一个问题
- String[] args 的参数是怎么传的?
- 一个可能令人发笑的问题,我从未接触过JAVA,现想学JAVA,请问是JBulider能在windows环境下做开发吗?
- java发送mail,smtp的用户名密码问题
- webspere studio application developer 的编辑器中不能输入中文!?
- 请大家指教
- 怎样调用匿名类里定义的变量?附程序代码
在按钮事件中,加入下面语句(界面略,比较简单),
三个文本框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();
}
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);
}
}
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;
}
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);
}
}
你们老师水平真低,不用swing
swing的事件机制是observer