您的位置:首页 > 编程语言 > Java开发

Java 朴素版计算器实现(代码冗长)

2016-04-11 11:27 489 查看
简单计算器



附源码

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
class MyActionClick implements ActionListener
{
MyFrameCal mf ;
public  MyActionClick(MyFrameCal mf)
{
this.mf = mf;
}
@Override
public void actionPerformed(ActionEvent e)
{
String str = e.getActionCommand();
System.out.println("str:"+str);
System.out.println("clickNum"+mf.clickNum);
System.out.println("array:"+mf.data);
switch(str)
{
case "0":
case "1":
case "2":
case "3":
case "4":;
case "5":
case "6":
case "7":
case "8":
case "9":
if (mf.data.size()==2)
{
return;
}
if(mf.data.size()==1&&mf.clickNum==0)
{
mf.data.set(0, Integer.parseInt(str));
return;
}
mf.data.add(Integer.parseInt(str));
int s = Integer.parseInt(str);
mf.tf.setText(String.valueOf(s));
break;
case "11":
if(mf.data.size()==1&&mf.clickNum==0)
{
mf.tf.setText("");
mf.clickNum=1;
return;
}
System.out.println("此时不能输入+");
break;
case "12":
if(mf.data.size()==1&&mf.clickNum==0)
{
mf.tf.setText("");
mf.clickNum=2;
return;
}
System.out.println("此时不能输入-");
break;
case "13":
if(mf.data.size()==1&&mf.clickNum==0)
{
mf.tf.setText("");
mf.clickNum=3;
return;
}
System.out.println("此时不能输入*");
break;
case "14":
if(mf.data.size()==1&&mf.clickNum==0)
{
mf.tf.setText("");
mf.clickNum=4;
return;
}
System.out.println("此时不能输入/");
break;
case "15":

4000
if(mf.data.size()!=2&&mf.clickNum==0)
{
return;
}
if(mf.data.get(1)==0&&mf.clickNum==4)
{
mf.tf.setText("");
System.out.println("除数不能为零,请重新输入");
mf.data.clear();
mf.clickNum=0;
return;
}
System.out.println(mf.data);
if(mf.data.size()==2&&mf.clickNum!=0)
{
if(mf.clickNum==1)
{
mf.tf.setText(String.valueOf(mf.data.get(0)+mf.data.get(1)));
mf.data.clear();
mf.clickNum=0;
return ;
}
if(mf.clickNum==2)
{
mf.tf.setText(String.valueOf(mf.data.get(0)-mf.data.get(1)));
mf.data.clear();
mf.clickNum=0;
return ;
}
if(mf.clickNum==3)
{
mf.tf.setText(String.valueOf(mf.data.get(0)*mf.data.get(1)));
mf.data.clear();
mf.clickNum=0;
return ;
}
if(mf.clickNum==4)
{
mf.tf.setText(String.valueOf(mf.data.get(0)/mf.data.get(1)));
mf.data.clear();
mf.clickNum=0;
return ;
}
}
break;
case "16":
if(mf.tf.getText().equals("")||mf.data.size()==0)
{
return;
}
mf.data.remove(mf.data.size()-1);
mf.tf.setText("");
break;
default:
break;
}
}
}
class MyFrameCal extends Frame
{
ArrayList<Integer> data = new ArrayList<Integer>();
int clickNum = 0;
TextField tf = new TextField(10);
Panel p  = new Panel();
Button b1 = new Button("0");
Button b2 = new Button("1");
Button b3 = new Button("2");
Button b4 = new Button("3");
Button b5 = new Button("4");
Button b6 = new Button("5");
Button b7 = new Button("6");
Button b8 = new Button("7");
Button b9 = new Button("8");
Button b10 = new Button("9");
Button b11 = new Button("+");
Button b12 = new Button("-");
Button b13 = new Button("*");
Button b14 = new Button("/");
Button b15 = new Button("=");
Button b16 = new Button("清零");
public void  lauch()
{
this.add(tf,BorderLayout.NORTH);
this.add(p,BorderLayout.CENTER);
p.add(b1);p.add(b2);p.add(b3);p.add(b4);p.add(b5);p.add(b6);p.add(b7);p.add(b8);
p.add(b9);p.add(b10);p.add(b11);p.add(b12);p.add(b13);p.add(b14);p.add(b15);p.add(b16);
this.pack();
b1.addActionListener(new MyActionClick(this));
b2.addActionListener(new MyActionClick(this));
b3.addActionListener(new MyActionClick(this));
b4.addActionListener(new MyActionClick(this));
b5.addActionListener(new MyActionClick(this));
b6.addActionListener(new MyActionClick(this));
b7.addActionListener(new MyActionClick(this));
b8.addActionListener(new MyActionClick(this));
b9.addActionListener(new MyActionClick(this));
b10.addActionListener(new MyActionClick(this));
b11.addActionListener(new MyActionClick(this));
b11.setActionCommand("11");
b12.addActionListener(new MyActionClick(this));
b13.addActionListener(new MyActionClick(this));
b14.addActionListener(new MyActionClick(this));
b15.addActionListener(new MyActionClick(this));
b16.addActionListener(new MyActionClick(this));
b12.setActionCommand("12");
b13.setActionCommand("13");
b14.setActionCommand("14");
b15.setActionCommand("15");
b16.setActionCommand("16");
p.setLayout(new GridLayout(4,4));
this.setBounds(200,200,200,200);
this.setVisible(true);
this.addWindowListener(
new WindowAdapter()
{
@Override
public void windowClosing(WindowEvent e)
{
System.exit(-1);
}
}
);
}
}
public class Test4
{
public static void main(String[] args)
{
new MyFrameCal().lauch();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: