读书人

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

发布时间: 2012-01-11 22:28:46 作者: rapoo

高手!!!帮调个程序,{睡不下}

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(){


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));
}
}
[解决办法]
你定义的输入框 后边又重新定义了 自然取不到值了
[解决办法]

探讨
本人能力有限,希望个位高手帮忙,怎么改过来呀,急呀

[解决办法]
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(){    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));  }} 

读书人网 >J2ME开发

热点推荐