public class SimpleCalculator extends JFrame implements ActionListener {
private String[] KEYS={"7","8","9","4","5","6","1","2","3","+","0","=","-","C"};
private JButton keys[]=new JButton[KEYS.length];
private JTextField resultText = new JTextField("0.0");
private String b="";
private String fuhao;
public SimpleCalculator(){
super("计算器");
this.setLayout(null);
resultText.setBounds(20, 5, 200, 40);
resultText.setHorizontalAlignment(JTextField.RIGHT);
resultText.setEditable(false);
this.add(resultText);
int x=20,y=55;
for (int i=0;i<KEYS.length;i++)
{
keys[i] = new JButton();
keys[i].setText(KEYS[i]);
keys[i].setBounds(x, y, 60, 40);
if(x<140)
{
x+=65;
}
else
{
x = 20;
y+=45;
}
this.add(keys[i]);
}
for (int i = 0; i <KEYS.length; i++)
{
keys[i].addActionListener(this);
}
this.setResizable(false);
this.setBounds(500, 200, 255, 400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String arg[])
{
SimpleCalculator a=new SimpleCalculator();
}
@Override
public void actionPerformed(ActionEvent e) {
String label = e.getActionCommand();
if (label=="="||label=="C"||label=="-"||label=="+")
{
if(label=="C")
{
this.b="";
resultText.setText("0");
}else if(label=="="){
String s[]=yunsuan(this.b);
String result=Result(s);
this.b=result+"";
resultText.setText(this.b);
}
else
{
fuhao=label;
String s[]=yunsuan(this.b);
String result=Result(s);
this.b=result+label;
resultText.setText(this.b);
}
}
else
{
this.b=this.b+label;
resultText.setText(this.b);
}
}
private String Result(String[] s) {
if (fuhao.equals("+")){
return plus(s);
}
if(fuhao.equals("-")){
return less(s);
}
return null;
}
private String less(String[] s){
if (
s[1]==null
){
return s[0];
}
return String.valueOf(Double.parseDouble(s[0])-Double.parseDouble(s[1]));
}
private String plus(String[] s){
if (
s[1]==null
){
return s[0];
}
return String.valueOf(Double.parseDouble(s[0])+Double.parseDouble(s[1]));
}
private String[] yunsuan(String b) {
String s="";
String jieguo[]=new String[100];
int j=0 ,a=0;
for (int i=0;i<b.length();i++) {
if ("0123456789.".indexOf(b.charAt(i)) >= 0) {
s = "";
for (; i < b.length() && "0123456789.".indexOf(b.charAt(i)) >= 0; i++) {
s = s + b.charAt(i);
}
i--;
jieguo[j] = s;
j++;
}else {
fuhao=String.valueOf(b.charAt(i));
}
}
return jieguo;
}
}
java简易计算器
猜你喜欢
转载自blog.csdn.net/chenguanghan123/article/details/103338233
今日推荐
周排行