这是我的那本清华教材上的源码,可是我在windows的记事本下编译不出来,请高手们尽情发挥,帮我看下是什么问题,在此谢过:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Adder implements ActionListener
{
JFrame AdderFrame;
JTextField TOprand1;//被加数
JTextField TOprand2;//加数
JLabel LAdd,LSum;//加号,和
JButton BAdd;//Add!按钮
int i=0;
public Adder()
{//建立图形界面的屏幕显示部分
AdderFrame=new JFrame("AdderFrame");
TOprand1=new JTextField("0.0");
LAdd=new JLabel("+");
LSum=new JLabel("=    ");
BAdd=new JButton("Add!");
AdderFrame.getContentPane().setLayout(new FlowLayout());
AdderFrame.getContentPane().add(TOprand1);
AdderFrame.getContentPane().add(LAdd);
AdderFrame.getContentPane().add(TOprand2);
AdderFrame.getContentPane().add(LSum);
AdderFrame.getContentPane().add(BAdd);
AdderFrame.pack();
AdderFrame.setVisible(true);
//为命令按钮添加事件监听器,监听器的实参是Adder类的对象BAdd.addActionListener(this);
public void actionPerformed(ActionEvent event)
{
//事件服务代码
i=(i+1)%2;
if(i==1)
{//i为奇数,求和
int sum=(int)(Double.valueOf(TOprand1.getText()).doubleValue()+Double.valueOf(TOprand2.getText()).doubleValue());
LSum.setText("="+sum);
}
else{//i为偶数,清零
TOprand1.setText("0.0");
TOprand2.setText("0.0");
LSum.setText("=");
};
}
//主视窗关闭的事件处理
AdderFrame.addWindowListener(new WindowAdapter()
public void WindowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public static void main(String[] args)
{
Adder adder=new Adder();
}
}

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;import javax.swing.*;public class Adder implements ActionListener {
    JFrame AdderFrame; JTextField TOprand1;// 被加数 JTextField TOprand2;// 加数 JLabel LAdd, LSum;// 加号,和 JButton BAdd;// Add!按钮 int i = 0; public Adder() { // 建立图形界面的屏幕显示部分
    AdderFrame = new JFrame("AdderFrame");
    TOprand1 = new JTextField("0.0");
    TOprand2 = new JTextField("0.0");
    LAdd = new JLabel("+");
    LSum = new JLabel("=    ");
    BAdd = new JButton("Add!");
    AdderFrame.getContentPane().setLayout(new FlowLayout());
    AdderFrame.getContentPane().add(TOprand1);
    AdderFrame.getContentPane().add(LAdd);
    AdderFrame.getContentPane().add(TOprand2);
    AdderFrame.getContentPane().add(LSum);
    AdderFrame.getContentPane().add(BAdd);
    AdderFrame.pack();
    AdderFrame.setVisible(true); BAdd.addActionListener(this); // 主视窗关闭的事件处理
    AdderFrame.addWindowListener(new WindowAdapter() {
    public void WindowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
    } // 为命令按钮添加事件监听器,监听器的实参是Adder类的对象BAdd.addActionListener(this);
    public void actionPerformed(ActionEvent event) {
    // 事件服务代码
    i = (i + 1) % 2;
    if (i == 1) {// i为奇数,求和
    int sum = (int) (Double.valueOf(TOprand1.getText()).doubleValue() + Double
    .valueOf(TOprand2.getText()).doubleValue());
    LSum.setText("=" + sum);
    } else {// i为偶数,清零
    TOprand1.setText("0.0");
    TOprand2.setText("0.0");
    LSum.setText("=");
    }
    } public static void main(String[] args) {
    Adder adder = new Adder();
    }
    }这样可以了,但是关闭窗口的事件处理好像有点问题,Java界面的没接触过,知道的就这么多了
      

  2.   

    /***************************
    找本好点的书吧,垃圾教材害死人,一堆的错下面是我改过的代码
    ****************************/import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Adder implements ActionListener{
        JFrame AdderFrame;
        JTextField TOprand1; //被加数
        JTextField TOprand2; //加数
        JLabel LAdd, LSum; //加号,和
        JButton BAdd; //Add!按钮
        int i = 0;
        public Adder (){
            AdderFrame = new JFrame("AdderFrame");
            TOprand1 = new JTextField("0.0");
            TOprand2 = new JTextField("0.0");
            
            LAdd = new JLabel("+");
            LSum = new JLabel("=    ");
            BAdd = new JButton("Add!");
            AdderFrame.getContentPane().setLayout(new FlowLayout());
            AdderFrame.getContentPane().add(TOprand1);
            AdderFrame.getContentPane().add(LAdd);
            AdderFrame.getContentPane().add(TOprand2);
            AdderFrame.getContentPane().add(LSum);
            AdderFrame.getContentPane().add(BAdd);
            AdderFrame.pack();
            AdderFrame.setVisible(true);        AdderFrame.addWindowListener(new WindowAdapter(){
                public void WindowClosing(WindowEvent e){
                    System.exit(0);
                }
            });
        }    public void actionPerformed(ActionEvent event){        i = (i + 1) % 2;
            if (i == 1){ 
                int sum = (int) (Double.valueOf(TOprand1.getText()).doubleValue() +
                          Double.valueOf(TOprand2.getText()).doubleValue());
                LSum.setText("=" + sum);
            } else{ 
                TOprand1.setText("0.0");
                TOprand2.setText("0.0");
                LSum.setText("=");
            }
            ;
        }    public static void main(String[] args){
            Adder  adder = new Adder ();
        }
    }
      

  3.   

    TOprand2 =new JTextField("0.0");
    没有初使化就用了
      

  4.   

    谢谢大家对我提的问题这么热心,昨天发源码时有几个地方是我自己打错了,现在在此更正一个,一个是TOprand2没有初始化,另一个是窗口关闭方法我的大小写打错了,应该为windowClosing(),但是我改过之后,还是调试不可以,另外,可不可以请大家注明我程序哪里错了,然后再把正确的源码发出来,不然我对比了一下,还是看不出区别,麻烦大家了。
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Adder implements ActionListener
    {
    JFrame AdderFrame;
    JTextField TOprand1;//被加数
    JTextField TOprand2;//加数
    JLabel LAdd,LSum;//加号,和
    JButton BAdd;//Add!按钮
    int i=0;
    public Adder()
    {//建立图形界面的屏幕显示部分
    AdderFrame=new JFrame("AdderFrame");
    TOprand1=new JTextField("0.0");
    TOprand2=new JTextField("0.0");
    LAdd=new JLabel("+");
    LSum=new JLabel("=    ");
    BAdd=new JButton("Add!");
    AdderFrame.getContentPane().setLayout(new FlowLayout());
    AdderFrame.getContentPane().add(TOprand1);
    AdderFrame.getContentPane().add(LAdd);
    AdderFrame.getContentPane().add(TOprand2);
    AdderFrame.getContentPane().add(LSum);
    AdderFrame.getContentPane().add(BAdd);
    AdderFrame.pack();
    AdderFrame.setVisible(true);
    //为命令按钮添加事件监听器,监听器的实参是Adder类的对象BAdd.addActionListener(this);
    public void actionPerformed(ActionEvent event)
    {
    //事件服务代码
    i=(i+1)%2;
    if(i==1)
    {//i为奇数,求和
    int sum=(int)(Double.valueOf(TOprand1.getText()).doubleValue()+Double.valueOf(TOprand2.getText()).doubleValue());
    LSum.setText("="+sum);
    }
    else{//i为偶数,清零
    TOprand1.setText("0.0");
    TOprand2.setText("0.0");
    LSum.setText("=");
    };
    }
    //主视窗关闭的事件处理
    AdderFrame.addWindowListener(new WindowAdapter()
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }
    });
    }
    public static void main(String[] args)
    {
    Adder adder=new Adder();
    }
    }
      

  5.   

    对了,控制台报的错是:Adder.java:33  illegal start of expression 
    public void action performed(ActionEvent event)
    1 error
      

  6.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Adder implements ActionListener {
        JFrame AdderFrame;    JTextField TOprand1;// 被加数    JTextField TOprand2;// 加数    JLabel LAdd, LSum;// 加号,和    JButton BAdd;// Add!按钮    int i = 0;    public Adder() { // 建立图形界面的屏幕显示部分
    AdderFrame = new JFrame("AdderFrame");
    TOprand1 = new JTextField("0.0");
    TOprand2 = new JTextField("0.0");
    LAdd = new JLabel("+");
    LSum = new JLabel("= ");
    BAdd = new JButton("Add!");
    AdderFrame.getContentPane().setLayout(new FlowLayout());
    AdderFrame.getContentPane().add(TOprand1);
    AdderFrame.getContentPane().add(LAdd);
    AdderFrame.getContentPane().add(TOprand2);
    AdderFrame.getContentPane().add(LSum);
    AdderFrame.getContentPane().add(BAdd);
    AdderFrame.pack();
    AdderFrame.setVisible(true);
    //为命令按钮添加事件监听器,监听器的实参是Adder类的对象
    BAdd.addActionListener(this);
        }
        public void actionPerformed(ActionEvent event) {
    // 事件服务代码
    i = (i + 1) % 2;
    if (i == 1) {// i为奇数,求和
        int sum = (int) (Double.valueOf(TOprand1.getText()).doubleValue() + Double
        .valueOf(TOprand2.getText()).doubleValue());
        LSum.setText("=" + sum);
    } else {// i为偶数,清零
        TOprand1.setText("0.0");
        TOprand2.setText("0.0");
        LSum.setText("=");
    }
    ; // 主视窗关闭的事件处理
    AdderFrame.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
    System.exit(0);
        }
    });
        }    public static void main(String[] args) {
    Adder adder = new Adder();
        }
    }
    这样就可以了
      

  7.   

    给你改了点,楼主发的有语法错误!
    增加了一句
    BAdd.addActionListener(this);  // 注册事件 你没这个PS: 命名看的很别扭
    ===============以下为修改后的代码=====import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Adder implements ActionListener {
    JFrame AdderFrame; JTextField TOprand1;// 被加数 JTextField TOprand2;// 加数 JLabel LAdd, LSum;// 加号,和 JButton BAdd;// Add!按钮

    int i = 0; public Adder() { // 建立图形界面的屏幕显示部分
    AdderFrame = new JFrame("AdderFrame");
    TOprand1 = new JTextField("0.0");
    TOprand2 = new JTextField("0.0");
    LAdd = new JLabel("+");
    LSum = new JLabel("=    ");
    BAdd = new JButton("Add!");
    AdderFrame.getContentPane().setLayout(new FlowLayout());
    AdderFrame.getContentPane().add(TOprand1);
    AdderFrame.getContentPane().add(LAdd);
    AdderFrame.getContentPane().add(TOprand2);
    AdderFrame.getContentPane().add(LSum);
    AdderFrame.getContentPane().add(BAdd);
    AdderFrame.pack();
    AdderFrame.setVisible(true);
    BAdd.addActionListener(this);  // 注册事件 你没这个

    } // 为命令按钮添加事件监听器,监听器的实参是Adder类的对象BAdd.addActionListener(this);
    public void actionPerformed(ActionEvent event) {
    // 事件服务代码
    i = (i + 1) % 2;
    if (i == 1) {// i为奇数,求和
    int sum = (int) (Double.valueOf(TOprand1.getText()).doubleValue() + Double
    .valueOf(TOprand2.getText()).doubleValue());
    LSum.setText("=" + sum);
    } else {// i为偶数,清零
    TOprand1.setText("0.0");
    TOprand2.setText("0.0");
    LSum.setText("=");
    }
    ; // 主视窗关闭的事件处理
    AdderFrame.addWindowListener(new WindowAdapter() {
    public void WindowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
    } public static void main(String[] args) {
    Adder adder = new Adder();
    }
    }
      

  8.   

    谢谢大家了,我知道哪里错了,我在自己的机子上把JLabel写成JLable了,汗....还有,那个对事件监听器的ActionListener的接口实例化应该放在对母类的定义中,我把放到对Adder类的构造方法中了......总之谢谢大家对我问题的关注,大家都好热心哟,让我好感动,我是第一次来这个社区,以后就在这住下了,请大家多多指导哟....