以下代码是我写的java计算器代码 的主要部分 其他的都是jbuilder自动生成的 在这里不粘贴出来了 但是当按下操作符(+ - * / =)时 文本框里显示的总是0.0 百思不得其解 望指教 编译能通过boolean end,first;
double num1,num2,num;
int sign;
void number(String s){
if(end){
jTextField1.setText(s);
end=false;
}
else if(jTextField1.getText().equals("0")){
jTextField1.setText(s);
}
else{
String str=jTextField1.getText()+s;
jTextField1.setText(str);
}
}
void operator(int s){
if(first){
num1=Double.parseDouble(jTextField1.getText());
sign=s;
first=false;
end=true;
}
else{
num2=Double.parseDouble(jTextField1.getText());
if(s==1){
num=num1+num2;
}
else if(s==2){
num=num1-num2;
}
else if(s==3){
num=num1*num2;
}
else if(s==4){
num=num1/num2;
}
}
num1=num;
sign=s;
jTextField1.setText(String.valueOf(num1));
end=true;
if(s==0)
first = true;
this.requestFocus(true);
}
public void jButton4_actionPerformed(ActionEvent e) {
number("1");
}
public void jButton5_actionPerformed(ActionEvent e) {
number("2");
}
public void jButton6_actionPerformed(ActionEvent e) {
number("3");
}
public void jButton10_actionPerformed(ActionEvent e) {
number("4");
}
public void jButton11_actionPerformed(ActionEvent e) {
number("5");
}
public void jButton8_actionPerformed(ActionEvent e) {
number("6");
}
public void jButton15_actionPerformed(ActionEvent e) {
number("7");
}
public void jButton12_actionPerformed(ActionEvent e) {
number("8");
}
public void jButton14_actionPerformed(ActionEvent e) {
number("9");
}
public void jButton16_actionPerformed(ActionEvent e) {
String str=jTextField1.getText();
if(str.indexOf(".")<0) {
str += ".";
jTextField1.setText("str");
}
}
public void jTextField1_actionPerformed(ActionEvent e) {
}
public void jButton13_actionPerformed(ActionEvent e) {
String str=jTextField1.getText();
if(str.indexOf("-")<0){
str="-"+str;
jTextField1.setText(str);
}
else{
String substr=str.substring(1);
jTextField1.setText(substr);
}
}
public void jButton18_actionPerformed(ActionEvent e) {
number("0");
}
public void jButton17_actionPerformed(ActionEvent e) {
operator(1);
}
public void jButton19_actionPerformed(ActionEvent e) {
operator(2);
}
public void jButton9_actionPerformed(ActionEvent e) {
operator(3);
}
public void jButton7_actionPerformed(ActionEvent e) {
operator(4);
}
public void jButton1_actionPerformed(ActionEvent e) {
jTextField1.setText("0");
end=true;
first=true;
sign=0;
}
public void jButton2_actionPerformed(ActionEvent e) {
jTextField1.setText("0");
end=true;
}
public void jButton3_actionPerformed(ActionEvent e) {
operator(0);
}
}
double num1,num2,num;
int sign;
void number(String s){
if(end){
jTextField1.setText(s);
end=false;
}
else if(jTextField1.getText().equals("0")){
jTextField1.setText(s);
}
else{
String str=jTextField1.getText()+s;
jTextField1.setText(str);
}
}
void operator(int s){
if(first){
num1=Double.parseDouble(jTextField1.getText());
sign=s;
first=false;
end=true;
}
else{
num2=Double.parseDouble(jTextField1.getText());
if(s==1){
num=num1+num2;
}
else if(s==2){
num=num1-num2;
}
else if(s==3){
num=num1*num2;
}
else if(s==4){
num=num1/num2;
}
}
num1=num;
sign=s;
jTextField1.setText(String.valueOf(num1));
end=true;
if(s==0)
first = true;
this.requestFocus(true);
}
public void jButton4_actionPerformed(ActionEvent e) {
number("1");
}
public void jButton5_actionPerformed(ActionEvent e) {
number("2");
}
public void jButton6_actionPerformed(ActionEvent e) {
number("3");
}
public void jButton10_actionPerformed(ActionEvent e) {
number("4");
}
public void jButton11_actionPerformed(ActionEvent e) {
number("5");
}
public void jButton8_actionPerformed(ActionEvent e) {
number("6");
}
public void jButton15_actionPerformed(ActionEvent e) {
number("7");
}
public void jButton12_actionPerformed(ActionEvent e) {
number("8");
}
public void jButton14_actionPerformed(ActionEvent e) {
number("9");
}
public void jButton16_actionPerformed(ActionEvent e) {
String str=jTextField1.getText();
if(str.indexOf(".")<0) {
str += ".";
jTextField1.setText("str");
}
}
public void jTextField1_actionPerformed(ActionEvent e) {
}
public void jButton13_actionPerformed(ActionEvent e) {
String str=jTextField1.getText();
if(str.indexOf("-")<0){
str="-"+str;
jTextField1.setText(str);
}
else{
String substr=str.substring(1);
jTextField1.setText(substr);
}
}
public void jButton18_actionPerformed(ActionEvent e) {
number("0");
}
public void jButton17_actionPerformed(ActionEvent e) {
operator(1);
}
public void jButton19_actionPerformed(ActionEvent e) {
operator(2);
}
public void jButton9_actionPerformed(ActionEvent e) {
operator(3);
}
public void jButton7_actionPerformed(ActionEvent e) {
operator(4);
}
public void jButton1_actionPerformed(ActionEvent e) {
jTextField1.setText("0");
end=true;
first=true;
sign=0;
}
public void jButton2_actionPerformed(ActionEvent e) {
jTextField1.setText("0");
end=true;
}
public void jButton3_actionPerformed(ActionEvent e) {
operator(0);
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货