您的位置:首页 > 编程语言 > Java开发

java计算器程序

2016-12-06 17:03 260 查看
通过Swing模拟实现计算器



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyCalcultor implements ActionListener{

private JFrame frame = new JFrame("MyCalculator");
private JPanel panel2 = new JPanel();
private final String []str = {"7", "8", "9", "/", "4", "5", "6",
"*", "1", "2", "3", "-", "0", ".", "=", "+" };
JButton[]buttons = new JButton[str.length];
JButton reset = new JButton("CE");
JTextField display = new JTextField("0");
public void init(){
JPanel panel1 = new JPanel(new BorderLayout());
panel1.add("Center",display);
panel1.add("East",reset);

panel2.setLayout(new GridLayout(4,4,4,4));
for (int i = 0; i < str.length; i++) {
buttons[i] = new JButton(str[i]);
panel2.add(buttons[i]);
buttons[i].setForeground(Color.blue);
}
buttons[3].setForeground(Color.red);
buttons[7].setForeground(Color.red);
buttons[11].setForeground(Color.red);
buttons[15].setForeground(Color.red);
buttons[14].setForeground(Color.green);
frame.setLayout(new BorderLayout(4,2));
frame.add("North",panel1);
frame.add("Center",panel2);

frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
for (int i = 0; i < str.length; i++) {
buttons[i].addActionListener(this);
}
reset.addActionListener(this);
display.addActionListener(this);
frame.setSize(800,800);
frame.pack();
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e){
Object target = e.getSource();
String label = e.getActionCommand();
if(target == reset)
{
handleReset();
}else if ("0123456789.".indexOf(label)>0){
handleNumber(label);
}else{
handleOperator(label);
}
}
boolean isfirstdigit = true;
double num = 0.0;
String operator = "=";
public void handleReset() {

display.setText("0");
isfirstdigit = true;
operator = "=";
}

public void handleNumber(String key){
if(isfirstdigit)
display.setText(key);
else if((key.equals(".")) && (display.getText().indexOf(".")<0))
display.setText(display.getText() + ".");
else if (!key.equals("."))
display.setText(display.getText() + key);
isfirstdigit = false;
}
public void handleOperator(String key) {

if(operator.equals("+")){
num += Double.valueOf(display.getText());
}else if(operator.equals("-")){
num -=Double.valueOf(display.getText());
}
else if(operator.equals("*")){
num *=Double.valueOf(display.getText());
}
else if(operator.equals("/")){
num /=Double.valueOf(display.getText());
}
else if(operator.equals("=")){
num =Double.valueOf(display.getText());
}
display.setText(String.valueOf(num));
operator = key;
isfirstdigit = true;
}
public static void main(String[] args) {
MyCalcultor test = new MyCalcultor();
test.init();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息