首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

为何编写的计算器不能运算

2012-10-17 
为什么编写的计算器不能运算?Windows操作系统自带的计算器是个很方便的小工具,利用Java的GUI编程,实现一个

为什么编写的计算器不能运算?
Windows操作系统自带的计算器是个很方便的小工具,利用Java的GUI编程,实现一个Java GUI计算器应用程序界面,窗口标题为“计算器”,窗口布局如下图所示,在此计算器应用程序中实现“+、-、*、/”运算操作。
代码:import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class T11 extends JFrame implements ActionListener{
int deng=0,fu=0,i=0,point=0,n=0;
float sum=0,equ;
String v="";
BorderLayout bo=new BorderLayout();
GridLayout g=new GridLayout(4,4);
JPanel jp=new JPanel();
JTextField jt=new JTextField(" 0");
JButton b1=new JButton("7");
JButton b2=new JButton("8");
JButton b3=new JButton("9");
JButton b4=new JButton("+");
JButton b5=new JButton("4");
JButton b6=new JButton("5");
JButton b7=new JButton("6");
JButton b8=new JButton("-");
JButton b9=new JButton("1");
JButton b10=new JButton("2");
JButton b11=new JButton("3");
JButton b12=new JButton("*");
JButton b13=new JButton("0");
JButton b14=new JButton(".");
JButton b15=new JButton("=");
JButton b16=new JButton("/");
@SuppressWarnings("static-access")
public T11(String title)
{
super(title);
this.setSize(300,300);
jp.setSize(300,200);
jt.setSize(300,100);
jp.setLayout(g);

jp.add(b1);
jp.add(b2);
jp.add(b3);
jp.add(b4);
jp.add(b5);
jp.add(b6);
jp.add(b7);
jp.add(b8);
jp.add(b9);
jp.add(b10);
jp.add(b11);
jp.add(b12);
jp.add(b13);
jp.add(b14);
jp.add(b15);
jp.add(b16);

b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
b12.addActionListener(this);
b13.addActionListener(this);
b14.addActionListener(this);
b15.addActionListener(this);
b16.addActionListener(this);
this.add(jt,bo.NORTH);
this.add(jp,bo.CENTER);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
{
if(deng==1||fu==1)
v="";
v=v+"7";
jt.setText(v);
deng=0;fu=0;n=1;
}
if(e.getSource()==b2)
{
if(deng==1||fu==1)
v="";
v=v+"8";
jt.setText(v);
deng=0;fu=0;n=1;
}
if(e.getSource()==b3)
{
if(deng==1||fu==1)
v="";
v=v+"9";
jt.setText(v);
deng=0;fu=0;n=1;
}
if(e.getSource()==b4)//+
{
if(n==1)
{
if(i==0)
sum=Float.parseFloat(v);
else if(i==1){sum+=Float.parseFloat(v);}
else if(i==2){sum-=Float.parseFloat(v);}
else if(i==3){sum*=Float.parseFloat(v);}
else if(i==4){sum/=Float.parseFloat(v);}
}
else
{
}
i=1;
fu=1;n=0;deng=0;point=0;

}
if(e.getSource()==b5)
{
if(deng==1||fu==1)
v="";
v=v+"4";
jt.setText(v);
deng=0;fu=0;n=1;
}
if(e.getSource()==b6)
{
if(deng==1||fu==1)
v="";
v=v+"5";
jt.setText(v);
deng=0;fu=0;n=1;
}
if(e.getSource()==b7)
{
if(deng==1||fu==1)
v="";
v=v+"6";
jt.setText(v);
deng=0;fu=0;n=1;
}
if(e.getSource()==b8)//-
{
if(n==1)
{
if(i==0)


sum=Float.parseFloat(v);
else if(i==1)sum+=Float.parseFloat(v);
else if(i==2)sum-=Float.parseFloat(v);
else if(i==3)sum*=Float.parseFloat(v);
else if(i==4)sum/=Float.parseFloat(v);
}
else
{
}
i=2;
fu=1;n=0;deng=0;point=0;

}
if(e.getSource()==b9)
{
if(deng==1||fu==1)
v="";
v=v+"1";
jt.setText(v);
deng=0;fu=0;n=1;
}
if(e.getSource()==b10)
{
if(deng==1||fu==1)
v="";
v=v+"2";
jt.setText(v);
deng=0;fu=0;n=1;
}
if(e.getSource()==b11)
{
if(deng==1||fu==1)
v="";
v=v+"3";
jt.setText(v);
deng=0;fu=0;n=1;
}
if(e.getSource()==b4)//*
{
if(n==1)
{
if(i==0)
sum=Float.parseFloat(v);
else if(i==1)sum+=Float.parseFloat(v);
else if(i==2)sum-=Float.parseFloat(v);
else if(i==3)sum*=Float.parseFloat(v);
else if(i==4)sum/=Float.parseFloat(v);
}
else
{
}
i=3;
fu=1;n=0;deng=0;point=0;

}
if(e.getSource()==b13)
{
if(deng==1||fu==1)
v="";
v=v+"0";
jt.setText(v);
deng=0;fu=0;n=1;
}
if(e.getSource()==b14)//.
{
if(deng==1||fu==1)
v="";
if("".equals(v))jt.setText("0.");
else
{
v=v+".";
jt.setText(v);
}
point=1;
deng=0;fu=0;n=1;

}
if(e.getSource()==b15)//=
{
if(fu==1){}
else
{
switch(i)
{
case 0: equ=sum;break;
case 1: equ=sum+Float.parseFloat(v);break;
case 2: equ=sum-Float.parseFloat(v);break;
case 3: equ=sum*Float.parseFloat(v);break;
case 4: equ=sum/Float.parseFloat(v);break;
}
sum=0;v="";
v=String.valueOf(equ);
jt.setText(String.valueOf(equ));
deng=1;i=0;

}
}
if(e.getSource()==b16)//+
{
if(n==1)
{
if(i==0)
sum=Float.parseFloat(v);
else if(i==1)sum+=Float.parseFloat(v);
else if(i==2)sum-=Float.parseFloat(v);
else if(i==3)sum*=Float.parseFloat(v);
else if(i==4)sum/=Float.parseFloat(v);
}
else
{
}
i=4;
fu=1;n=0;deng=0;point=0;

}
}
public static void main(String[]args)
{
new T11("计算器");
}
}


[解决办法]
你这个代码设计的太蛋疼了,在你这个基础上给改的,能跑最简单的一次性加减运算,你看看

Java code
import java.awt.*;import javax.swing.*;import java.awt.event.*;@SuppressWarnings("serial")public class T11 extends JFrame implements ActionListener{    int deng=0,fu=0,i=0,point=0,n=0;    float sum=0,equ;    String v="";    BorderLayout bo=new BorderLayout();    GridLayout g=new GridLayout(4,4);    JPanel jp=new JPanel();    JTextField jt=new JTextField(" 0");    JButton b1=new JButton("7");    JButton b2=new JButton("8");    JButton b3=new JButton("9");    JButton b4=new JButton("+");    JButton b5=new JButton("4");    JButton b6=new JButton("5");    JButton b7=new JButton("6");    JButton b8=new JButton("-");    JButton b9=new JButton("1");    JButton b10=new JButton("2");    JButton b11=new JButton("3");    JButton b12=new JButton("*");    JButton b13=new JButton("0");    JButton b14=new JButton(".");    JButton b15=new JButton("=");    JButton b16=new JButton("/");    @SuppressWarnings("static-access")    public T11(String title)    {        super(title);        this.setSize(300,300);        jp.setSize(300,200);        jt.setSize(300,100);        jp.setLayout(g);        jp.add(b1);        jp.add(b2);        jp.add(b3);        jp.add(b4);        jp.add(b5);        jp.add(b6);        jp.add(b7);        jp.add(b8);        jp.add(b9);        jp.add(b10);        jp.add(b11);        jp.add(b12);        jp.add(b13);        jp.add(b14);        jp.add(b15);        jp.add(b16);        b1.addActionListener(this);        b2.addActionListener(this);        b3.addActionListener(this);        b4.addActionListener(this);        b5.addActionListener(this);        b6.addActionListener(this);        b7.addActionListener(this);        b8.addActionListener(this);        b9.addActionListener(this);        b10.addActionListener(this);        b11.addActionListener(this);        b12.addActionListener(this);        b13.addActionListener(this);        b14.addActionListener(this);        b15.addActionListener(this);        b16.addActionListener(this);        this.add(jt,bo.NORTH);        this.add(jp,bo.CENTER);        this.setLocationRelativeTo(null);                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        this.setVisible(true);    }    public void actionPerformed(ActionEvent e)    {        if(e.getSource()==b1)        {            if(deng==1||fu==1)                v="";            v=v+"7";            jt.setText(v);            deng=0;fu=0;n=1;        }        if(e.getSource()==b2)        {            if(deng==1||fu==1)                v="";            v=v+"8";            jt.setText(v);            deng=0;fu=0;n=1;        }        if(e.getSource()==b3)        {            if(deng==1||fu==1)                v="";            v=v+"9";            jt.setText(v);            deng=0;fu=0;n=1;        }        if(e.getSource()==b4)//+        {            if(n==1)            {                if(i==0)                    sum=Float.parseFloat(v);                else if(i==1){sum+=Float.parseFloat(v);}                else if(i==2){sum-=Float.parseFloat(v);}                else if(i==3){sum*=Float.parseFloat(v);}                else if(i==4){sum/=Float.parseFloat(v);}            }            else            {            }            i=1;            fu=1;n=0;deng=0;point=0;        }        if(e.getSource()==b5)        {            if(deng==1||fu==1)                v="";            v=v+"4";            jt.setText(v);            deng=0;fu=0;n=1;        }        if(e.getSource()==b6)        {            if(deng==1||fu==1)                v="";            v=v+"5";            jt.setText(v);            deng=0;fu=0;n=1;        }        if(e.getSource()==b7)        {            if(deng==1||fu==1)                v="";            v=v+"6";            jt.setText(v);            deng=0;fu=0;n=1;        }        if(e.getSource()==b8)//-        {            if(n==1)            {                if(i==0)                    sum=Float.parseFloat(v);                else if(i==1)sum+=Float.parseFloat(v);                else if(i==2)sum-=Float.parseFloat(v);                else if(i==3)sum*=Float.parseFloat(v);                else if(i==4)sum/=Float.parseFloat(v);            }            else            {            }            i=2;            fu=1;n=0;deng=0;point=0;        }        if(e.getSource()==b9)        {            if(deng==1||fu==1)                v="";            v=v+"1";            jt.setText(v);            deng=0;fu=0;n=1;        }        if(e.getSource()==b10)        {            if(deng==1||fu==1)                v="";            v=v+"2";            jt.setText(v);            deng=0;fu=0;n=1;        }        if(e.getSource()==b11)        {            if(deng==1||fu==1)                v="";            v=v+"3";            jt.setText(v);            deng=0;fu=0;n=1;        }        // ioe_gaoyong添加        if(e.getSource()==b12)//-        {            if(n==1)            {                if(i==0)                    sum=Float.parseFloat(v);                else if(i==1)sum+=Float.parseFloat(v);                else if(i==2)sum-=Float.parseFloat(v);                else if(i==3)sum*=Float.parseFloat(v);                else if(i==4)sum/=Float.parseFloat(v);            }            else            {            }            i=3;            fu=1;n=0;deng=0;point=0;        }   // ioe_gaoyong添加结束        if(e.getSource()==b4)//*        {            if(n==1)            {                if(i==0)                    sum=Float.parseFloat(v);                else if(i==1)sum+=Float.parseFloat(v);                else if(i==2)sum-=Float.parseFloat(v);                else if(i==3)sum*=Float.parseFloat(v);                else if(i==4)sum/=Float.parseFloat(v);            }            else            {            }            i=1;//这里修改            fu=1;n=0;deng=0;point=0;        }        if(e.getSource()==b13)        {            if(deng==1||fu==1)                v="";            v=v+"0";            jt.setText(v);            deng=0;fu=0;n=1;        }        if(e.getSource()==b14)//.        {            if(deng==1||fu==1)                v="";            if("".equals(v))jt.setText("0.");            else            {                v=v+".";                jt.setText(v);            }            point=1;            deng=0;fu=0;n=1;        }        if(e.getSource()==b15)//=        {            if(fu==1){}            else            {                switch(i)                {                    case 0: equ=sum;break;                    case 1: equ=sum+Float.parseFloat(v);break;                    case 2: equ=sum-Float.parseFloat(v);break;                    case 3: equ=sum*Float.parseFloat(v);break;                    case 4: equ=sum/Float.parseFloat(v);break;                }                sum=0;v="";                v=String.valueOf(equ);                jt.setText(String.valueOf(equ));                deng=1;i=0;            }        }        if(e.getSource()==b16)//+        {            if(n==1)            {                if(i==0)                    sum=Float.parseFloat(v);                else if(i==1)sum+=Float.parseFloat(v);                else if(i==2)sum-=Float.parseFloat(v);                else if(i==3)sum*=Float.parseFloat(v);                else if(i==4)sum/=Float.parseFloat(v);            }else{            }            i=4;            fu=1;n=0;deng=0;point=0;        }    }    public static void main(String[]args){        new T11("计算器");    }} 

热点排行