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