面向过程
在一个主函数里面进行所有操作过程
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{
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{
public void actionPerformed(ActionEvent e) {
TextField field = (TextField)e.getSource();
System.out.println(field.getText());
field.setText("");
}
}
}