下面的代码是生成一个简易的计算器。
CalculaTorimport java.awt.*;import java.awt.event.*;import javax.swing.*;class CalculaTorPanel extends JPanel implements ActionListener{ public CalculaTorPanel() { setLayout(new BorderLayout()); display = new JTextField("0"); display.setEditable(false); add(display, "North"); JPanel p = new JPanel(); p.setLayout(new GridLayout(4, 4)); String buttons = "789/456*123-0.=+"; for (int i = 0; i < buttons.length(); i++) addButton(p, buttons.substring(i, i + 1)); add(p, "Center"); } private void addButton(Container c, String s) { JButton b = new JButton(s); c.add(b); b.addActionListener(this); } public void actionPerformed(ActionEvent evt) { String s = evt.getActionCommand(); if ('0' <= s.charAt(0) && s.charAt(0) <= '9' || s.equals(".")) { if (start) display.setText(s); //是第一个字符 else display.setText(display.getText() + s); start = false; } else { if (start) //是第一个字符 { if (s.equals("-")) { display.setText(s); start = false; } else p = s; } else { double x = Double.parseDouble(display.getText()); calculate(x); p = s; start = true; } } } public void calculate(double n) { if (op.equals("+")) arg += n; else if (op.equals("-")) arg -= n; else if (op.equals("*")) arg *= n; else if (op.equals("/")) arg /= n; else if (op.equals("=")) arg = n; display.setText("" + arg); } private JTextField display; private double arg = 0; private String p = "="; private boolean start = true;}class CalculaTorFrame. extends JFrame{ public CalculaTorFrame() { setTitle("CalculaTor"); setSize(200, 200); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); Container contentPane = getContentPane(); contentPane.add(new CalculaTorPanel()); }}public class CalculaTor{ public static void main(String[] args) { JFrame. frame. = new CalculaTorFrame(); frame.show(); }}
走过一段路,风景毕竟不相同。这段惠风和畅,