java 简单计算器问题(请帮我改一下)急!在线!!!谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/28 06:11:21
要求(两个文本框输入数值,一个组合框选择符号(+、-、*、/) 点击等号 会自动计算结果,放在第3个文本框,一个清除按钮) 是作业,刚学不太会,请大侠们,各位高手给帮忙改改,在原程序基础上

package chap;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class jsq extends JFrame implements ItemListener {

JTextField tf;
public void init(){
Container contentPane=getContentPane();
contentPane.setLayout(new GridLayout(2,3));
//文本框(数值1
JTextField t1=new JTextField("",10);
contentPane.add(t1);
//组合框(+,-,*,/)
JComboBox c1=new JComboBox();
c1.addItem("+");
c1.addItem("-");
c1.addItem("*");
c1.addItem("/");
c1.addItemListener(this);
contentPane.add(c1);
//文本框(数值2)
JTextField t2=new JTextField("",10);
contentPane.add(t2);
//按钮(=)
JButton b1=new JButton();
b1.setActionCommand("=");
//b1

因为你的t1,t2.t3,定义在一个方法init()中,他们只是一个局部变量(仅在本方法中有效).而使用时又在方法itemStateChanged中调用,当然会报错啦!把这三个变量放在public init()方法的上面定义,使其成为全局变量就可以在不同的方法中使用了!
另外t3.setText(String.ValueOf(n));这句也有错,valueOf(n)的第一个字母应该小写.
还有一个问题,就算你改了前面的错误程序也不能运行,因为你在main()方法中根本没有调用前面一个类里定义的方法啊!所以要调用才可以啊!
最后,还有一要注意的问题是,你这个程序中有两个类,所以要建两个*.java文件,文件名必须和类名一致.

n1=Double.parseDouble(t1.getText());
n1=Double.parseDouble(t2.getText());

太乱。。。我就想问s从哪来。。