计算器问题 请高手指点 我想设计一个计算器,当我点击0—9时可以在一个文本区域显示出来,于是我就用text.setText("数字")显示出了0—9的数字然而我遇到的问题是当我点击下一个数字的时候前面的一个数字会被覆盖掉,请各位指点下如何当我点击按钮0—9时出现的是连续的数字:87697 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 又遇到问题了 我在触发一个加法按钮之后就开始计算两个数之和 然后触发等于按钮输出结果 if(biaoji==1)//触发加法按钮 {//start计算 String Second=tex.getText();//获取文本内容 int second=new Integer(Second).intValue();//将字符串转化位数字 first=first+second; if(biaoji==4)//触发等于按钮 tex.setText(String.valueOf(first));//??? }//end 计算但是结果不是我想象的那样点等于会出来结果,求高手指点!!! 你要利用API现在的方法想办法去解决你的问题 大家说的有道理!什么话都不说了 贴源码!import java.awt.*;import javax.swing.*;import java.awt.event.*;public class JSQ extends JFrame implements ActionListener{ JTextField tex=new JTextField(10); JButton clean=new JButton("CE"); int biaoji=0; int first,f; String []str={"7","8","9","+", "4","5","6","-", "1","2","3","*", "0","+/-","=","/"}; JButton []num=new JButton[16]; JPanel pan1=new JPanel(); JPanel pan2=new JPanel(); JSQ(){ super("计算器"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan1.setLayout(new FlowLayout()); pan1.add(clean); pan1.add(tex); pan2.setLayout(new GridLayout(4,4)); for(int i=0;i<16;i++){ num[i]=new JButton(str[i]); pan2.add(num[i]); } setLayout(new BorderLayout()); getContentPane().add("North",pan1); getContentPane().add("Center",pan2); for(int j=0;j<16;j++){ num[j].addActionListener(this); } clean.addActionListener(this); pack(); setVisible(true); setResizable(false); } public void actionPerformed(ActionEvent ae) { if(ae.getSource()==clean) { first=0; biaoji=0; tex.setText(null); }//清空按钮 for(int i=0;i<16;i++){ if(ae.getSource()==num[i]) { if(i!=3&&i!=7&&i!=11&&i!=13&&i!=14&&i!=15) { tex.setText(tex.getText()+str[i]); } } }//监控数字按钮 if(biaoji==0) { String First=tex.getText();//获取文本内容 first=new Integer(First).intValue();//将字符串转化位数字 } if(ae.getSource()==num[3]) { biaoji=1; tex.setText(null); }//+的按钮 if(biaoji==1&&ae.getSource()==num[14]) { String Second=tex.getText();//获取文本内容 int second=new Integer(Second).intValue();//将字符串转化位数字 first=first+second; tex.setText(String.valueOf(first)); } //下面解决减法的问题 if(ae.getSource()==num[7]) { biaoji=2; tex.setText(null); }//-button if(biaoji==2&&ae.getSource()==num[14]) { String Second=tex.getText();//获取文本内容 int second=new Integer(Second).intValue();//将字符串转化位数字 first=first-second; tex.setText(String.valueOf(first)); }//下面解决乘法 if(ae.getSource()==num[11]) { biaoji=3; tex.setText(null); }//*button if(biaoji==3&&ae.getSource()==num[14]) { String Second=tex.getText();//获取文本内容 int second=new Integer(Second).intValue();//将字符串转化位数字 first=first*second; tex.setText(String.valueOf(first));//??? } //下面解决除法 if(ae.getSource()==num[15]) { biaoji=5; tex.setText(null); }// /button if(biaoji==5&&ae.getSource()==num[14]) { String Second=tex.getText();//获取文本内容 int second=new Integer(Second).intValue();//将字符串转化位数字 first=first/second; tex.setText(String.valueOf(first)); } } public static void main(String[] args) { new JSQ(); } } 解2元一次方程组(初级),求完善~~~~~~~~~~ 小白求助 JXL读取EXCEL里日期格式写入数据库的问题 郁闷的面试题 100分求助!取表单文件域的value的值不全!<input type=file value=""> 日志记录器 级别 大家进来谈谈对引用的理解吧,越详细越好。 这个词的解释是? 汉字转换unicode码的问题? 关于applet的显示问题 哥们帮帮忙,关于中英文符号不变的问题! 神奇的结果,7.7-7=???
{//start计算
String Second=tex.getText();//获取文本内容
int second=new Integer(Second).intValue();//将字符串转化位数字
first=first+second;
if(biaoji==4)//触发等于按钮
tex.setText(String.valueOf(first));//???
}//end 计算
但是结果不是我想象的那样点等于会出来结果,求高手指点!!!
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class JSQ extends JFrame implements ActionListener{
JTextField tex=new JTextField(10);
JButton clean=new JButton("CE");
int biaoji=0;
int first,f;
String []str={"7","8","9","+",
"4","5","6","-",
"1","2","3","*",
"0","+/-","=","/"};
JButton []num=new JButton[16];
JPanel pan1=new JPanel();
JPanel pan2=new JPanel();
JSQ(){
super("计算器");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
pan1.setLayout(new FlowLayout());
pan1.add(clean);
pan1.add(tex);
pan2.setLayout(new GridLayout(4,4));
for(int i=0;i<16;i++){
num[i]=new JButton(str[i]);
pan2.add(num[i]);
}
setLayout(new BorderLayout());
getContentPane().add("North",pan1);
getContentPane().add("Center",pan2);
for(int j=0;j<16;j++){
num[j].addActionListener(this);
}
clean.addActionListener(this);
pack();
setVisible(true);
setResizable(false);
}
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==clean)
{
first=0;
biaoji=0;
tex.setText(null);
}//清空按钮
for(int i=0;i<16;i++){
if(ae.getSource()==num[i])
{
if(i!=3&&i!=7&&i!=11&&i!=13&&i!=14&&i!=15)
{
tex.setText(tex.getText()+str[i]);
}
}
}//监控数字按钮
if(biaoji==0)
{
String First=tex.getText();//获取文本内容
first=new Integer(First).intValue();//将字符串转化位数字
}
if(ae.getSource()==num[3])
{
biaoji=1;
tex.setText(null);
}//+的按钮
if(biaoji==1&&ae.getSource()==num[14])
{
String Second=tex.getText();//获取文本内容
int second=new Integer(Second).intValue();//将字符串转化位数字
first=first+second;
tex.setText(String.valueOf(first));
}
//下面解决减法的问题
if(ae.getSource()==num[7])
{
biaoji=2;
tex.setText(null);
}//-button
if(biaoji==2&&ae.getSource()==num[14])
{
String Second=tex.getText();//获取文本内容
int second=new Integer(Second).intValue();//将字符串转化位数字
first=first-second;
tex.setText(String.valueOf(first));
}
//下面解决乘法
if(ae.getSource()==num[11])
{
biaoji=3;
tex.setText(null);
}//*button
if(biaoji==3&&ae.getSource()==num[14])
{
String Second=tex.getText();//获取文本内容
int second=new Integer(Second).intValue();//将字符串转化位数字
first=first*second;
tex.setText(String.valueOf(first));//???
}
//下面解决除法
if(ae.getSource()==num[15])
{
biaoji=5;
tex.setText(null);
}// /button
if(biaoji==5&&ae.getSource()==num[14])
{
String Second=tex.getText();//获取文本内容
int second=new Integer(Second).intValue();//将字符串转化位数字
first=first/second;
tex.setText(String.valueOf(first));
}
}
public static void main(String[] args) {
new JSQ();
}
}