⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculatorset.java

📁 一个简单的计算器,实现加减乘除和浮点运算
💻 JAVA
字号:
import java.awt.*; 
import java.awt.event.*; //import java.util.EventObject; 
public class CalculatorSet{ 
Frame f=new Frame("Calculator"); 
Panel p1=new Panel();
Panel p2=new Panel(); 
Button b0 = new Button("0"); 
Button b1 = new Button("1"); 
Button b2 = new Button("2"); 
Button b3 = new Button("3"); 
Button b4 = new Button("4"); 
Button b5 = new Button("5"); 
Button b6 = new Button("6"); 
Button b7 = new Button("7"); 
Button b8 = new Button("8"); 
Button b9 = new Button("9"); 
Button bPoint = new Button("."); 
Button bAdd = new Button("+"); 
Button bDec = new Button("-"); 
Button bMul = new Button("*"); 
Button bDiv = new Button("/"); 
Button bCal = new Button("=");  
String s,op; 
TextField tf = new TextField(25);
Calculator cal = new Calculator(); 
boolean ifOp; 
public void launchFrame(){
tf.setEditable(false); 
f.setSize(400,300); 
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()); 
b1.addActionListener(new setLabelText()); 
b2.addActionListener(new setLabelText()); 
b3.addActionListener(new setLabelText()); 
b4.addActionListener(new setLabelText()); 
b5.addActionListener(new setLabelText()); 
b6.addActionListener(new setLabelText()); 
b7.addActionListener(new setLabelText()); 
b8.addActionListener(new setLabelText()); 
b9.addActionListener(new setLabelText()); 
bPoint.addActionListener(new setLabelText()); 
bAdd.addActionListener(new setOperator()); 
bDec.addActionListener(new setOperator()); 
bMul.addActionListener(new setOperator()); 
bDiv.addActionListener(new setOperator()); 
bCal.addActionListener(new setOperator()); 
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.pack(); 
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){ 
CalculatorSet calculator = new CalculatorSet(); 
calculator.launchFrame(); 
} 
class myWindowListener extends WindowAdapter{ 
public void windowClosing(WindowEvent e){ 
System.exit(0); 
} } 
class setLabelText implements ActionListener{ 
public void actionPerformed(ActionEvent e){ 
Button temp = (Button)e.getSource(); 
s = temp.getLabel(); 
setTextFieldText(); 
} } 
class setOperator implements ActionListener{ 
public void actionPerformed(ActionEvent e){ 
Button temp = (Button)e.getSource(); 
op = temp.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; 
} } } }
class Calculator{ 
String result = "0"; 
int op = 0,add = 1,sub = 2,mul = 3,div = 4; 
double stringToDouble(String x){ 
double y = Double.parseDouble(x); 
return y; 
} 
public 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"; 
} }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -