用java实现这个计算器为什么不能用(点击按钮为啥没反应),求大神解答??
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculate implements ActionListener{
String s="";//数字存入这个变量
String s1="";//保存运算符
String s2="";//用于显示;
JTextField jt=new JTextField(20);
String z="+,-,*,/";
String z1="0,1,2,3,4,5,6,7,8,9,.";
double d;//用来存储运算符左边的数
public void actionPerformed(ActionEvent e){
String s3=e.getActionCommand();
if(s3.contains(z1)){
s=s+s3;
s2=s;
jt.setText(s2);
}
if(s3.contains(z)){
d=Double.parseDouble(s2);
s="";//清零
s1=s3;//存入运算符
}
if(s3.equals("=")){
if(s2.equals("+")){
s2=(d+Double.parseDouble(s))+"";//实现加法
}
if(s2.equals("-")){
s2=(d-Double.parseDouble(s))+"";//实现减法
}
if(s2.equals("*")){
s2=(d*Double.parseDouble(s))+"";//实现乘法
}
if(s2.equals("/")){
s2=(d/Double.parseDouble(s))+"";//实现除法
}
jt.setText(s2);
s="";//运算结束清零
}
}
public Calculate(){
JFrame jf=new JFrame("Calculate");
JPanel p=new JPanel();//面板
JButton[] b=new JButton[16];
GridLayout grid=new GridLayout(4,4);
String[] lab={"7","8","9","+",
"4","5","6","-",
"1","2","3","*",
"0",".","/","="
};
for(int i=0;i<b.length;i++){
b[i]=new JButton(lab[i]);
p.add(b[i]);
b[i].addActionListener(this);
}
p.setLayout(grid);
jf.add(jt,BorderLayout.NORTH);
jf.add(p);
jf.setResizable(false);
jf.setLocation(300,200);
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args){
new Calculate();
}
}
你的计算器点击按钮没反应 你可以给你的按钮设置监听事件 点击完了 对应的按钮 在显示框上有对应的结果
你没发现你加减乘除都 用的一个方法嘛。。
if(s3.contains(z)){
d=Double.parseDouble(s2);
s="";//清零
s1=s3;//存入运算符
}
s3中保存操作符, 肯定会走到if里面, 你在这里将s清零了.
ps. 问题要描述清楚, 怎么不能用, 最终现象是什么样, 最好说清楚