Universität Paderborn - Home Universität Paderborn
Die Universität der Informationsgesellschaft

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