标签:
本人的第一个小程序。
import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * A simple calculator program. * * @author Guure * @version 1.00 5/9/2015 */ public class Calculator extends JFrame implements ActionListener { /** * This class help close the Window. * */ private class WindowCloser extends WindowAdapter { public void windowClosing(WindowEvent we) { System.exit(0); } } JTextField display = new JTextField("0"); JButton reset = new JButton("CE"); private final String[] str = {"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", ".", "0", "=", "+"}; JButton[] buttons = new JButton[str.length]; public Calculator() { super("Calculator"); JPanel panel1 = new JPanel(new BorderLayout()); panel1.add("Center", display); panel1.add("East", reset); JPanel panel2 = new JPanel(new GridLayout(4, 4)); int i; for(i = 0; i < str.length; i++) { buttons[i] = new JButton(str[i]); panel2.add(buttons[i]); } getContentPane().setLayout(new BorderLayout()); getContentPane().add("North", panel1); getContentPane().add("Center", panel2); for(i = 0; i < str.length; i++) { buttons[i].addActionListener(this); } reset.addActionListener(this); display.addActionListener(this); addWindowListener(new WindowCloser()); setSize(800, 800); setLocation(400, 200); setVisible(true); pack(); } 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 number = 0.0; String operator = "="; public void handleNumber(String key) { if(isFirstDigit) { display.setText(key); isFirstDigit = false; } else if((key.equals(".")) && (display.getText().indexOf(".") < 0)) { display.setText(display.getText() + "."); } else if(!key.equals(".")) { display.setText(display.getText() + key); } } public void handleReset() { display.setText("0"); isFirstDigit = true; operator = "="; } public void handleOperator(String key) { if(operator.equals("+")) { number += Double.valueOf(display.getText()); } else if(operator.equals("-")) { number -= Double.valueOf(display.getText()); } else if(operator.equals("*")) { number *= Double.valueOf(display.getText()); } else if(operator.equals("/")) { number /= Double.valueOf(display.getText()); } else if(operator.equals("=")) { number = Double.valueOf(display.getText()); } display.setText(String.valueOf(number)); operator = key; isFirstDigit = true; } public static void main(String[] args) { new Calculator(); } }
标签:
原文地址:http://www.cnblogs.com/iguure/p/4492232.html