class Calc extends Frame{
TextField num1,num2,num3;
public void loadFrame() {
/*
* TextField num1=new TextField();
TextField num2=new TextField();
TextField num3=new TextField();
因为num1已经在前面定义了
变量num1被重载定义,会导致Exception in thread "AWT-EventQueue-0"
num1的值返回为空
*/
num1=new TextField();
num2=new TextField();
num3=new TextField();
}
}
package Day08;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Demo05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
new Calc().loadFrame();
}
}
class Calc extends Frame{
TextField num1,num2,num3;
public void loadFrame() {
/*
* TextField num1=new TextField();
TextField num2=new TextField();
TextField num3=new TextField();
因为num1已经在前面定义了
变量num1被重载定义,会导致Exception in thread "AWT-EventQueue-0"
num1的值返回为空
*/
num1=new TextField();
num2=new TextField();
num3=new TextField();
Label label=new Label("+");
Button button=new Button("=");
setLayout(new FlowLayout());
add(num1);
add(label);
add(num2);
add(button);
add(num3);
calcListener calclis=new calcListener(this);
button.addActionListener(calclis);
pack();
setVisible(true);
}
}
// public Calc() {
/* pack();
setVisible(true);
TextField num1=new TextField();
TextField num2=new TextField();
TextField num3=new TextField();
Label label=new Label("+");
Button button=new Button("=");
setLayout(new FlowLayout());
add(num1);
add(label);
add(num2);
add(button);
add(num3);
calcListener calclis=new calcListener(this);
button.addActionListener(calclis);*/
//}
class calcListener implements ActionListener{
//在一个类中组合另外一个类
Calc calc=null;
//TextField num1,num2,num3;
public calcListener(Calc calc) {
this.calc=calc;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("你按下了"+e.getActionCommand());
System.out.println(calc.num1.getText());
int n1=Integer.parseInt(calc.num1.getText());
int n2=Integer.parseInt(calc.num2.getText());
calc.num3.setText(""+(n1+n2));
calc.num1.setText("");
calc.num2.setText("");
}
}