import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.math.BigDecimal;
public class Cal implements ActionListener{
boolean append = false;
JTextField jtf = new JTextField(20);
private String operator = "+";
private String op1 = "0";
public Cal(){
JFrame jf = new JFrame("计算器");
JPanel jp = new JPanel();
jp.setLayout(new GridLayout(5,4));
jtf.setHorizontalAlignment(JTextField.RIGHT);//从右边显示
jtf.setText("0");
jtf.setEditable(false);
jf.add(jtf,BorderLayout.NORTH);
String[] s = {"backs","CE","C","+","7","8","9","-","4","5","6","*",
"1","2","3","/","0",".","+/-","="};
JButton[] jb = new JButton[s.length];
for(int i=0;i
jb[i].addActionListener(this);
jp.add(jb[i]);
}
jf.add(jp);
jf.setSize(300, 200);
jf.setLocation(410, 190);
jf.setResizable(false);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent ae){
String com = ae.getActionCommand();
if("0123456789".indexOf(com)!=-1){
if(append){
String temp = jtf.getText();
jtf.setText(temp+com);
}else{
jtf.setText(com);
append = true;
}
}else if("+-*/".indexOf(com)!=-1){
op1 = jtf.getText();
operator = com;
append = false;
}else if("=".equals(com)){
String op2 = jtf.getText();
BigDecimal d1 = new BigDecimal(op1);
BigDecimal d2 = new BigDecimal(op2);
if("+".equals(operator)){
d1 = d1.add(d2);
}else if("-".equals(operator)){
d1 = d1.subtract(d2);
}else if("*".equals(operator)){
d1 = d1.multiply(d2);
}else{
d1 = d1.divide(d2, 10, BigDecimal.ROUND_HALF_UP);
}
jtf.setText(d1.toString());
append = false;
}else if(".".equals(com)){
String temp = jtf.getText();
if(temp.indexOf(com)==-1){//没找到小数点的时候在后面追加一个小数点
jtf.setText(temp+".");
append = true;
}
}else if("+/-".equals(com)){
String temp = jtf.getText();
if(temp.startsWith("-")){
jtf.setText(temp.substring(1));
}else{
jtf.setText("-"+temp);
}
}else if("backs".equals(com)){
String temp = jtf.getText();
if(temp.length()>0){
jtf.setText(temp.substring(0, temp.length()-1));
}
}else if("CE".equals(com)||"C".equals(com)){
jtf.setText("0");
}
}
public static void main(String[] args) {
new Cal();
}
}
如果报价的话,我可以帮你1023400273