当前位置: 代码迷 >> J2SE >> 这个程序为什么不能运行,是小弟我设的引用异常么
  详细解决方案

这个程序为什么不能运行,是小弟我设的引用异常么

热度:101   发布时间:2016-04-24 01:25:43.0
这个程序为什么不能运行,是我设的引用错误么?
Java code
import java.awt.*;import java.awt.event.*;public class TFmath{    public static void main(String[] args){        new MyFrame();        }    }    class MyFrame extends Frame{    public MyFrame(){        setLayout(new FlowLayout());        TextField num1 = new TextField(10);        TextField num2 = new TextField(10);        TextField num3 = new TextField(15);                Label lab = new Label("+");                Button bun = new Button("=");        bun.addActionListener(new minitor(this));        add(num1);        add(lab);                add(num2);                add(bun);        add(num3);                pack();        setVisible(true);                }    }        class Minitor implements ActionListener{    MyFrame mf = null;    Minitor(MyFrame mf){        this.mf = mf;        }            public void actionPerformed(ActionEvent e){        int n1 = Integer.parseInt(mf.num1.getText());        int n2 = Integer.parseInt(mf.num2.getText());        int n3 = (n1 + n2);        mf.num3.setText(String.valueOf(n3));                }    }


------解决方案--------------------
2大问题:

1、不能去引用局部变量
int n1 = Integer.parseInt(mf.num1.getText());
int n2 = Integer.parseInt(mf.num2.getText());
要改正的话,应该是把这三句话中定义的变量,变成成员变量:
TextField num1 = new TextField(10);
TextField num2 = new TextField(10);
TextField num3 = new TextField(15);
也就是放到 public MyFrame(){ 前面去。

2、大小写错误
bun.addActionListener(new minitor(this));
应该是 new Minitor
  相关解决方案