import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Cal extends JFrame implements ActionListener{
JTextField ta = new JTextField(20);
//面版keys
String[] numberStrings = {"7","8","9","/","4","5","6","*","1","2","3","-",".","0","=","+"};
JButton keysButton[] = new JButton[numberStrings.length];
//消除按钮
JButton cancleButton = new JButton("cancle");
public void init(){
ta.setText("");
//文本域在右边显示
ta.setHorizontalAlignment(JTextField.RIGHT);
JFrame f = new JFrame("calculate");
f.add(ta, BorderLayout.NORTH);
f.add(cancleButton,BorderLayout.EAST);
Panel p = new Panel();
p.setLayout(new GridLayout(4,4,3,3));
//事件监听
cancleButton.addActionListener(this);
for (int i = 0; i < numberStrings.length; i++) {
keysButton[i] = new JButton(numberStrings[i]);
p.add(keysButton[i]);
//事件监听
keysButton[i].addActionListener(this);
}
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(p, BorderLayout.CENTER);
f.setLocation(new Point(500,500));
f.setSize(new Dimension(200,100));
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
new Cal().init();
}
//获取TextField的值
public String getNum(){
return ta.getText();
}
String lastNum = "";
String operatorString = "";
@Override
public void actionPerformed(ActionEvent e) {
String label = e.getActionCommand();
String firstNum = getNum();
if("0123456789.".indexOf(label)>=0){
firstNum+=label;
ta.setText(firstNum);
}else if("+-*/".indexOf(label)>=0){
operatorString = label;
lastNum=getNum();
ta.setText("");
}else if("=".equals(label)){
ta.setText(""+result(lastNum,firstNum,operatorString));
}else if("cancle".equals(label)){
ta.setText("");
}
}
//显示结果
public Double result(String first,String last,String operator){
double res = 0;
//为空的处理
if("".equals(last)||"".equals(first)){
last="0";
first="0";
}
if("+".equals(operator)){
res = Double.valueOf(first) + Double.valueOf(last);
}else if("-".equals(operator)){
res = Double.valueOf(first) - Double.valueOf(last);
}else if("*".equals(operator)){
res = Double.valueOf(first) * Double.valueOf(last);
}else if("/".equals(operator)){
res = Double.valueOf(first) / Double.valueOf(last);
}
return res;
}
}
大家一起学习!!!
1579

被折叠的 条评论
为什么被折叠?



