当前位置: 代码迷 >> J2ME >> 高手!帮调个程序,{睡不下},该如何解决
  详细解决方案

高手!帮调个程序,{睡不下},该如何解决

热度:722   发布时间:2013-02-25 21:33:57.0
高手!!!帮调个程序,{睡不下}
Java code
import java.awt.*;import java.awt.event.*;public class AWT_Math {    public static void main(String[] args){      new TFrame().launchFrame();    }}class TFrame extends Frame {  TextField num1,num2,num3;  public void launchFrame(){    TextField num1 = new TextField(10);    TextField num2 = new TextField(10);    TextField num3 = new TextField(15);    Label LaPlus = new Label("+");    Button buqual = new Button("=");    buqual.addActionListener(new MyMonitor(this));    setLayout(new FlowLayout());    add(num1);    add(LaPlus);    add(num2);    add(buqual);    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));  }}



我是按网上的视频敲的,跟原文一样,但就是有错!!!

------解决方案--------------------------------------------------------
很简单啊,你在TFrame类里定义了全局变量num1、num2、num3;但是,你在launchFrame()方法中,定义了同名的局部变量,当然会报Nullexception
Java code
public class AWT_Math {    public static void main(String[] args) {        new TFrame().launchFrame();    }}class TFrame extends Frame {    TextField num1, num2, num3;    public void public class AWT_Math {    public static void main(String[] args) {        new TFrame().launchFrame();    }}class TFrame extends Frame {    TextField num1, num2, num3;    public void launchFrame() {        num1 = new TextField(10);        num2 = new TextField(10);        num3 = new TextField(15);        Label LaPlus = new Label("+");        Button buqual = new Button("=");        buqual.addActionListener(new MyMonitor(this));        setLayout(new FlowLayout());        add(num1);        add(LaPlus);        add(num2);        add(buqual);        add(num3);        pack();        setVisible(true);    }}class MyMonitor implements ActionListener {    TFrame tf = null;    public MyMonitor(TFrame 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));    }} {        num1 = new TextField(10);        num2 = new TextField(10);        num3 = new TextField(15);        Label LaPlus = new Label("+");        Button buqual = new Button("=");        buqual.addActionListener(new MyMonitor(this));        setLayout(new FlowLayout());        add(num1);        add(LaPlus);        add(num2);        add(buqual);        add(num3);        pack();        setVisible(true);    }}class MyMonitor implements ActionListener {    TFrame tf = null;    public MyMonitor(TFrame 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));    }}
------解决方案--------------------------------------------------------
路过,呵呵上面正解,顶一下
------解决方案--------------------------------------------------------
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class AWT_Math {
public static void main(String[] args){
new TFrame().launchFrame();
}
}

class TFrame extends Frame {
TextField num1,num2,num3;
public void launchFrame(){
  相关解决方案