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