利用java做一个简单的计算器
??? GUI只是用了AWT,很簡(jiǎn)單,相信一看就能懂了。
Calculator.java
public?class?Calculator{
private?String?result?=?"0";
private?int?op?=?0,add?=?1,sub?=?2,mul?=?3,div?=?4;
private?double?stringToDouble(String?x){
double?y?=?Double.parseDouble(x);
return?y;
}
private?void?operate(String?x){
double?x1?=?stringToDouble(x);
double?y?=?stringToDouble(result);
switch?(op){
case?0:
result?=?x;
break;
case?1:
result?=?String.valueOf(y+x1);
break;
case?2:
result?=?String.valueOf(y-x1);
break;
case?3:
result?=?String.valueOf(y*x1);
break;
case?4:
if(x1!=0){
result?=?String.valueOf(y/x1);
}else{
result?=?"The?divisor?can't?be?zero!";
}
break;
}
}
public?String?opAdd(String?x){
operate(x);
op?=?add;
return?result;
}
public?String?opSubtract(String?x){
operate(x);
op?=?sub;
return?result;
}
public?String?opMultiply(String?x){
operate(x);
op?=?mul;
return?result;
}
public?String?opDivide(String?x){
operate(x);
op?=?div;
return?result;
}
public?String?opEquals(String?x){
operate(x);
op?=?0;
return?result;
}
public?void?opClean(){
op?=?0;
result?=?"0";
}
}
-------------------------------------------------------------------
第二個(gè)
CalculatorGUI.java
import?java.awt.*;
import?java.awt.event.*;
import?java.util.EventObject;
public?class?CalculatorGUI{
private?Frame?f;
private?Panel?p1,p2;
private?Button?b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
private?Button?bPoint,bAdd,bDec,bMul,bDiv,bCal;
private?TextField?tf;
private?String?s,op;
private?Calculator?cal?=?new?Calculator();
private?boolean?ifOp;
public?CalculatorGUI(){
f?=?new?Frame("Calculator");
p1?=?new?Panel();
p2?=?new?Panel();
b0?=?new?Button("0");
b1?=?new?Button("1");
b2?=?new?Button("2");
b3?=?new?Button("3");
b4?=?new?Button("4");
b5?=?new?Button("5");
b6?=?new?Button("6");
b7?=?new?Button("7");
b8?=?new?Button("8");
b9?=?new?Button("9");
bPoint?=?new?Button(".");
bAdd?=?new?Button("+");
bDec?=?new?Button("-");
bMul?=?new?Button("*");
bDiv?=?new?Button("/");
bCal?=?new?Button("=");
tf?=?new?TextField(25);
tf.setEditable(false);
}
public?void?launchFrame(){
f.setSize(220,160);
f.setResizable(false);
f.addWindowListener(new?myWindowListener());
p1.setLayout(new?FlowLayout(FlowLayout.CENTER));
p1.add(tf);
f.add(p1,BorderLayout.NORTH);
p2.setLayout(new?GridLayout(4,4));
b0.addActionListener(new?setLabelText_ActionListener());
b1.addActionListener(new?setLabelText_ActionListener());
b2.addActionListener(new?setLabelText_ActionListener());
b3.addActionListener(new?setLabelText_ActionListener());
b4.addActionListener(new?setLabelText_ActionListener());
b5.addActionListener(new?setLabelText_ActionListener());
b6.addActionListener(new?setLabelText_ActionListener());
b7.addActionListener(new?setLabelText_ActionListener());
b8.addActionListener(new?setLabelText_ActionListener());
b9.addActionListener(new?setLabelText_ActionListener());
bPoint.addActionListener(new?setLabelText_ActionListener());
bAdd.addActionListener(new?setOperator_ActionListener());
bDec.addActionListener(new?setOperator_ActionListener());
bMul.addActionListener(new?setOperator_ActionListener());
bDiv.addActionListener(new?setOperator_ActionListener());
bCal.addActionListener(new?setOperator_ActionListener());
p2.add(b7);
p2.add(b8);
p2.add(b9);
p2.add(bAdd);
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.add(bDec);
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(bMul);
p2.add(b0);
p2.add(bPoint);
p2.add(bCal);
p2.add(bDiv);
f.add(p2,BorderLayout.SOUTH);
f.setVisible(true);
}
public?void?setTextFieldText_Temp(){
if?(tf.getText().length()<15?&&?(tf.getText().indexOf(".")==-1?||?!s.equals("."))){
tf.setText(tf.getText()+s);
}else{
tf.setText((tf.getText()+s).substring(0,15));
}
}
public?void?setTextFieldText(){
if(ifOp){
ifOp?=?false;
tf.setText("");
setTextFieldText_Temp();
}else{
setTextFieldText_Temp();
}
}
public?static?void?main(String[]?args){
CalculatorGUI?calculator?=?new?CalculatorGUI();
calculator.launchFrame();
}
class?myWindowListener?extends?WindowAdapter{
public?void?windowClosing(WindowEvent?e){
System.exit(0);
}
}
class?setLabelText_ActionListener?implements?ActionListener{
public?void?actionPerformed(ActionEvent?e){
Button?tempB?=?(Button)e.getSource();
s?=?tempB.getLabel();
setTextFieldText();
}
}
class?setOperator_ActionListener?implements?ActionListener{
public?void?actionPerformed(ActionEvent?e){
Button?tempB?=?(Button)e.getSource();
op?=?tempB.getLabel();
if(op.equals("+")){
tf.setText(cal.opAdd(tf.getText()));
ifOp?=?true;
}else?if(op.equals("-")){
tf.setText(cal.opSubtract(tf.getText()));
ifOp?=?true;
}else?if(op.equals("*")){
tf.setText(cal.opMultiply(tf.getText()));
ifOp?=?true;
}else?if(op.equals("/")){
tf.setText(cal.opDivide(tf.getText()));
ifOp?=?true;
}else?if(op.equals("=")){
tf.setText(cal.opEquals(tf.getText()));
ifOp?=?true;
}
}
}
}
總結(jié)
以上是生活随笔為你收集整理的利用java做一个简单的计算器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: J2ME开发心得-数组的使用
- 下一篇: Java基础-关于session的详细解