读书人

刚学java 要求做简单的计算器 重置 不

发布时间: 2011-12-30 23:30:45 作者: rapoo

刚学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( "请输入正确的数字! ");
}
}
}

这样试试看吧

读书人网 >J2SE开发

热点推荐