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

刚学java 要求做简单的计算器 重置 不是很好用哦 帮忙啦~解决思路

2011-12-30 
刚学java 要求做简单的计算器 重置 不是很好用哦 帮忙啦~当只输入一个操作数的时候重置失效需要输入两个操

刚学java 要求做简单的计算器 重置 不是很好用哦 帮忙啦~
当只输入   一个操作数的时候   重置   失效
需要输入两个操作数   才可以
不明白   所以……
谢谢%
import   java.awt.*;
import   java.awt.event.*;
public   class   keke   extends   Frame   implements   ActionListener
{  

  Button   a1,a2,a3,a4,a5;
TextField   text1,text2,text3;
Double   a,b;
Frame   f1;
   
keke()
{

f1=new   Frame( "简单计算器 ");
f1.setSize(200,200);
f1.setVisible(true);

          Panel   pan=new   Panel();
          pan.setBackground(Color.cyan);
         
          Panel   pan2=new   Panel();
          pan2.setBackground(Color.blue);

          setLayout(new   BorderLayout());
          f1.add( "Center ",pan);
          f1.add( "East ",pan2);
         
          Label   la=new   Label( "操作数 ");
          text1=new   TextField(5);
          text1.getText();
          Label   lb=new   Label( "操作数 ");
          text2=new   TextField(5);
          text2.getText();
          Label   lc=new   Label( "结果 ");
          text3=new   TextField(5);
        //   text3.setEditable(false);
          a1=new   Button   ( "+ ");
          a2=new   Button   ( "- ");
          a3=new   Button   ( "* ");
          a4=new   Button   ( "/ ");
          a5=new   Button   ( "重置 ");
 


    pan.setLayout(new   GridLayout(3,2));
    pan.add(la);
    pan.add(text1);
    pan.add(lb);
    pan.add(text2);
    pan.add(lc);
    pan.add(text3);
    pan2.setLayout(new   GridLayout(5,1));
    pan2.add(a1);
    pan2.add(a2);
    pan2.add(a3);
    pan2.add(a4);
    pan2.add(a5);

  a1.addActionListener(this);
  a2.addActionListener(this);
  a3.addActionListener(this);
  a4.addActionListener(this);
  a5.addActionListener(this);

 
   
   
   
 


pack();


       
     


       
}        
public   void   actionPerformed(ActionEvent   e)

{
  a=Double.valueOf(text1.getText()).doubleValue();
  b=Double.valueOf(text2.getText()).doubleValue();
   
   
     
        if(e.getSource()==a1)
            {text3.setText(String.valueOf(a+b));}


           
        if(e.getSource()==a2)
        {text3.setText(String.valueOf(a-b));}
       
        if(e.getSource()==a3)
          {text3.setText(String.valueOf(a*b));}
         
        if(e.getSource()==a4)
          {text3.setText(String.valueOf(a/b));}
   
        if(e.getSource()==a5)
        {  
            text1.setText( " ");
            text2.setText( " ");
            text3.setText( " ");   }
   
   
}

public   static   void   main(String   args[])
{

new   keke();

}

}




[解决办法]

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class keke extends Frame implements ActionListener
{

Button a1, a2, a3, a4, a5;
TextField text1, text2, text3;
Double a, b;
Frame f1;

keke()
{

f1 = new Frame( "简单计算器 ");
f1.setSize(200, 200);
f1.setVisible(true);

Panel pan = new Panel();
pan.setBackground(Color.cyan);

Panel pan2 = new Panel();
pan2.setBackground(Color.blue);

setLayout(new BorderLayout());
f1.add( "Center ", pan);
f1.add( "East ", pan2);

Label la = new Label( "操作数 ");
text1 = new TextField(5);
text1.getText();
Label lb = new Label( "操作数 ");
text2 = new TextField(5);
text2.getText();
Label lc = new Label( "结果 ");
text3 = new TextField(5);
// text3.setEditable(false);
a1 = new Button( "+ ");
a2 = new Button( "- ");
a3 = new Button( "* ");
a4 = new Button( "/ ");
a5 = new Button( "重置 ");

pan.setLayout(new GridLayout(3, 2));
pan.add(la);
pan.add(text1);
pan.add(lb);
pan.add(text2);
pan.add(lc);
pan.add(text3);
pan2.setLayout(new GridLayout(5, 1));
pan2.add(a1);
pan2.add(a2);
pan2.add(a3);
pan2.add(a4);
pan2.add(a5);

a1.addActionListener(this);
a2.addActionListener(this);
a3.addActionListener(this);
a4.addActionListener(this);
a5.addActionListener(this);

pack();

}

public void actionPerformed(ActionEvent e)

{
if(!(text1.getText().trim().equals( " ") && text2.getText().trim().equals( " ")))
{

a = Double.valueOf(text1.getText()).doubleValue();
b = Double.valueOf(text2.getText()).doubleValue();



if (e.getSource() == a1)
{
text3.setText(String.valueOf(a + b));
}

if (e.getSource() == a2)
{
text3.setText(String.valueOf(a - b));
}

if (e.getSource() == a3)
{
text3.setText(String.valueOf(a * b));
}

if (e.getSource() == a4)
{
text3.setText(String.valueOf(a / b));
}

if (e.getSource() == a5)
{
text1.setText( " ");
text2.setText( " ");
text3.setText( " ");
}

}
}

public static void main(String args[])
{

new keke();

}

}

[解决办法]
public void actionPerformed(ActionEvent e){

if (e.getSource() == a5){
text1.setText( " ");
text2.setText( " ");
text3.setText( " ");
}

if(!(text1.getText().trim().equals( " ") && text2.getText().trim().equals( " "))){
try{
a = Double.valueOf(text1.getText()).doubleValue();
b = Double.valueOf(text2.getText()).doubleValue();

if (e.getSource() == a1){
text3.setText(String.valueOf(a + b));
}else if (e.getSource() == a2){
text3.setText(String.valueOf(a - b));
}else if (e.getSource() == a3){
text3.setText(String.valueOf(a * b));
}else if (e.getSource() == a4){
text3.setText(String.valueOf(a / b));
}
}catch(Exception ee){
text3.setText( "请输入正确的数字! ");
}
}
}

这样试试看吧

热点排行