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


