Grundlagen der Programmierung 2 SS 2005 - Datei Calculator.java
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Calculator extends JFrame { // Konstanten für die verschiedene Zustände public final static int FIRST_STATE = 0; public final static int SECOND_STATE = 1; public final static int THIRD_STATE = 2; // Variable zum Speichern des aktuellen Zustandes private int state = FIRST_STATE; // Textfeld erzeugen private JTextField textField = new JTextField(); // Button Beschriftung private String[] buttonLabelArray = {"+","-","*","/","1","2","3","4","5","6","7","8","9","0","=","C"}; // 16 Buttons des Taschenrechners private JButton[] buttonArray = new JButton [16]; // Taschenrechner Konstruktor public Calculator() { super("Calculator"); // Schließverhalten des Fensters festlegen setDefaultCloseOperation(EXIT_ON_CLOSE); // Listener fuer die Buttons class buttonActionListener implements ActionListener { public void actionPerformed(ActionEvent event) { // ermitteln welcher Button gedrueckt wurde String stringActionCommand = event.getActionCommand(); //TODO: Hier Code für Button-Ereignisbehandlung einfügen. } } // Fenstergroesse festlegen setSize(180,240); // Textfeld textField.setText(""); textField.setVisible(true); textField.setEnabled(false); // Panel für die Button erzeugen JPanel centerPanel = new JPanel(); centerPanel.setLayout(new GridLayout(4,4)); // Layout festlegen und Komponenten hinzufuegen Container content = getContentPane(); content.setLayout(new BorderLayout()); content.add(centerPanel, BorderLayout.CENTER); content.add(textField, BorderLayout.NORTH); // Buttons mit Labeln und ActionListener generieren for (int i = 0; i<16; i++) { buttonArray[i] = new JButton(buttonLabelArray[i]); centerPanel.add(buttonArray[i]); buttonArray[i].addActionListener(new buttonActionListener()); } // Fenster anzeigen setVisible(true); } // Methode zum Wechseln der Zustaende public void toState (int nextState) { // TODO: Hier Code für Zustandsübergänge einfügen. state = nextState; switch (state) { case FIRST_STATE: { // Code für FIRST_STATE break; } case SECOND_STATE: { // Code für SECOND_STATE break; } case THIRD_STATE: { // Code für THIRD_STATE break; } } } //Main Methode erzeugt ein Frame public static void main(String[] args) { JFrame calculatorFrame = new Calculator(); } }
Generiert mit Camelot | Probleme mit Camelot? | Geändert am: 10.05.2005