Vor einiger Zeit hatte ich mal einen Taschenrechner in Swing geschrieben, vielleicht kann dieser eine Inspiration sein:
Java:import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; public class Taschenrechner implements ActionListener { private int in = 0; private JTextField field1 = new JTextField(); private JTextField field2 = new JTextField(); private JTextField field3 = new JTextField(); private JButton[] buttons = { new JButton("/"), new JButton("1"), new JButton("2"), new JButton("3"), new JButton("*"), new JButton("4"), new JButton("5"), new JButton("6"), new JButton("-"), new JButton("7"), new JButton("8"), new JButton("9"), new JButton("+"), new JButton("Del"), new JButton("0"), new JButton(","), new JButton("=") }; public Taschenrechner() { JFrame frame = new JFrame("Taschenrechner"); frame.setLayout(new GridLayout(5, 4, 5, 5)); frame.add(field1); frame.add(field2); frame.add(field3); for (JButton button : buttons) { frame.add(button); button.addActionListener(this); } frame.setSize(400, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } public static void main(String[] args) { new Taschenrechner(); } @Override public void actionPerformed(ActionEvent e) { char c = e.getActionCommand().charAt(0); if (c == 'D') { field1.setText(""); field2.setText(""); field3.setText(""); in = 0; } switch (in) { case 0: if (c == '+' || c == '-' || c == '*' || c == '/') { field2.setText(field2.getText() + c); in++; } if (c >= '0' && c <= '9') { field1.setText(field1.getText() + c); } if (c == ',') { field1.setText(field1.getText() + '.'); } break; case 1: if (c == '=') { double d1 = Double.parseDouble(field1.getText()); double d2 = Double.parseDouble(field3.getText()); switch (field2.getText().charAt(0)) { case '+': field1.setText(d1 + d2 + ""); break; case '-': field1.setText(d1 - d2 + ""); break; case '*': field1.setText(d1 * d2 + ""); break; case '/': field1.setText(d1 / d2 + ""); break; default: break; } field1.setText((float) Double.parseDouble(field1.getText()) + ""); field2.setText(""); field3.setText(""); in = 0; } if (c >= '0' && c <= '9') { field3.setText(field3.getText() + c); } if (c == ',') { field3.setText(field3.getText() + '.'); } break; default: break; } } }
ich brauche einen TaRe nicht im GUI, sondern einen Anfänger-TaschenRechner ohne Swing, TextFields, etc. Konsoleausgabe.