这是我在听马士兵的视屏是做的练习  可编译的时候老是有问题 找不出来在线等帮助
import java.awt.*;
import java.awt.event.*;public class TFMath {
public static void main(String args[]) {
new TFFrame().launchFrame();
}
}class TFFrame extends Frame {
public void launchFrame() {
TextField num1 = new TextField(10);
TextField num2 = new TextField(10);
TextField num3 = new TextField(15);
Label lbplus = new Label("+");
Button BEqual = new Button("=");
BEqual.addActionListener(new MyMonitor(this));
setLayout(new FlowLayout());
add(num1);
add(lbplus);
add(num2);
add(BEqual);
add(num3);
pack();
setVisible(true);
}
}class MyMonitor implements ActionListener {
TFFrame tf = null;
TextField num1,num2,num3;
public MyMonitor(TFFrame tf) {
this.tf = tf;
}

public void actionPerformed(ActionEvent e) {
int n1 = Integer.parseInt(tf.num1.getText());
int n2 = Integer.parseInt(tf.num2.getText());
tf.num3.setText("" +(n1+n2));

}

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;public class TFMath {
    public static void main(String args[]) {
    new TFFrame().launchFrame();
    }
    }class TFFrame extends Frame {
    TextField num1, num2, num3; public void launchFrame() {
    num1 = new TextField(10);
    num2 = new TextField(10);
    num3 = new TextField(15);
    Label lbplus = new Label("+");
    Button BEqual = new Button("=");
    BEqual.addActionListener(new MyMonitor(this));
    setLayout(new FlowLayout());
    add(num1);
    add(lbplus);
    add(num2);
    add(BEqual);
    add(num3);
    pack();
    setVisible(true);
    }
    }class MyMonitor implements ActionListener {
    TFFrame tf = null; public MyMonitor(TFFrame tf) {
    this.tf = tf;
    } public void actionPerformed(ActionEvent e) {
    int n1 = Integer.parseInt(tf.num1.getText());
    int n2 = Integer.parseInt(tf.num2.getText());
    tf.num3.setText("" + (n1 + n2));
    }
    }
      

  2.   

    TextField 要作为类的变量,不能作为方法的变量否则new的时候取不到
      

  3.   


    也不一定,那要看成员变量的访问权限,如果是Private的话,就不可以被外表访问了