20.2 Eingabe- und Ausgabefelder: Fakultätsrechner

 
Die ganze GUI-Klasse Was jetzt noch fehlt ist die ganze Ereignisbehandlung, also das Anmelden des Rechenbuttons beim Aktionsabhorcher ActionListener

rechenButton.adActionListener(this);

und hinzufügen der Methode actionPerformed(ActionEvent e):

public void actionPerformed(ActionEvent e){
  String eingabe = eingabeFeld.getText();  
  int zahl1 = Integer.parseInt(eingabe);   
  long zahl2 = Mathematik.fakultaet(zahl1);
  ausgabeFeld.setText(""+zahl2);           
}   

Wir deklarieren ein String-Objekt und initialisieren es mit dem aus dem im Textfeld stehenden Textes. Das Auslesen geschieht mit der Methode getText(), angewandt für das JTextField-Objekt eingabeFeld. Mit der Integer-Klassenmethode parseInt(..) wird ein int-Wert generiert, der in zahl1 abgelegt wird. Mit der Mathematik-Klassenmethode wird die Fakultät berechnet in zahl2 gespeichert. Schließlich wird die berechnete Zahl im Ausgabefeld ausgegeben. Die Schreibweise ""+zahl2 ist im ersten Moment fremd. Sie lässt sich aber so verstehen. zahl2 ist ja eine Zahl vom Typ long, mit der Konkatenation über '+' mit einem Leerstring wird sie zu einem 'schreibbaren' String. Ohne das Zwischenspeichern in zahl1 und zahl2 lässt sich die ganze Routine auch kürzer schreiben:

public void actionPerformed(ActionEvent e){
  int zahl = Integer.parseInt(eingabeFeld.getText());
  ausgabeFeld.setText(""+ Mathematik.fakultaet(zahl));
}
Download:
FakultaetGUI. java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class FakultaetGUI extends JFrame 
                          implements ActionListener{
  // Anfang Variablen
  private JTextField eingabeFeld, ausgabeFeld;
  private JButton rechenButton;
  // Ende Variablen

  public FakultaetGUI (String title) {
    // Frame-Initialisierung
    super (title);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(200, 100);
    Container cp = getContentPane();
    cp.setLayout(new BorderLayout());

    // Anfang Komponenten
    eingabeFeld = new JTextField("Eingabe");
    eingabeFeld.setHorizontalAlignment(eingabeFeld.RIGHT);
    cp.add(eingabeFeld,BorderLayout.NORTH);

    rechenButton = new JButton("Fakultät[n]");
    rechenButton.addActionListener(this);
    cp.add(rechenButton,BorderLayout.CENTER);

    ausgabeFeld = new JTextField();
    ausgabeFeld.setHorizontalAlignment(ausgabeFeld.RIGHT);
    cp.add(ausgabeFeld,BorderLayout.SOUTH);
    ausgabeFeld.setEditable(false);
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  public void actionPerformed(ActionEvent e){
    int zahl = Integer.parseInt(eingabeFeld.getText());
    ausgabeFeld.setText(""+ Mathematik.fakultaet(zahl));
  }
  // Ende Ereignisprozeduren

  public static void main (String[] args) {
    new FakultaetGUI("Fakultät");
  }
}
Downloads:
Mathematik. java

Mathematik. class
 

Natürlich muss in dem gleichen Ordner, indem wir unsere GUI-Klasse abgelegt haben auch, die Klasse Mathematik.class liegen. Ihr Quellkode wird nicht benötigt.
Wir sind am Ziel.
zu 20.3 Fakultät und und ggT
zur Startseite www.pohlig.de  (C) MPohlig 2004