编程方法

面向过程

在一个主函数里面进行所有操作过程

public class TestTextField {

public static void main(String[] args) {
Frame frame = new Frame();
TextField field = new TextField();
frame.setLayout(new BorderLayout());
frame.add(field);
field.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
TextField field = (TextField)e.getSource();
System.out.println(field.getText());
field.setText("");
}
});

frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});

frame.setVisible(true);

}

}


面向对象

在类中构造类,通过调用类方法使主函数简洁

public class TestTextField {

public static void main(String[] args) {
new MyFrame();
}

}

class MyFrame extends Frame{

public MyFrame(){
setLayout(new BorderLayout());
TextField field = new TextField();
field.setEchoChar('*');
field.addActionListener(new TextListener());
add(field);
pack();
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}

}

class TextListener implements ActionListener{

@Override
public void actionPerformed(ActionEvent e) {
TextField field = (TextField)e.getSource();
System.out.println(field.getText());
field.setText("");
}

}


内部类

将构造类放在主类当中,方便方法和参数的调用

public class TestTextField {

public static void main(String[] args) {
new MyFrame();
}

private class MyFrame extends Frame{

public MyFrame(){
setLayout(new BorderLayout());
TextField field = new TextField();
field.setEchoChar('*');
field.addActionListener(new TextListener());
add(field);
pack();
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}
private class TextListener implements ActionListener{

@Override
public void actionPerformed(ActionEvent e) {
TextField field = (TextField)e.getSource();
System.out.println(field.getText());
field.setText("");
}

}
}