Textfelder in JavaFX (Textfelder in JavaFX), Lektion, Seite 724252
https://www.purl.org/stefan_ram/pub/textfelder_javafx (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Textfelder in JavaFX 

Ein Textfeld ist ein Objekt, welches einen Text enthalten kann und in einem Fenster angezeigt werden kann. Dieser Text kann beim Erzeugen des Objektes durch einen Argumentwert festgelegt werden.

Das Hauptfenster gilt als „Bühne“ (englisch “stage ”), auf der sich eine „Szene“ (englisch “scene ”), also ein Inhalt befindet, die ein Textfeld (englisch “text field ”) enthält.

Im folgenden Aufruf wird ein Textfeld erzeugt und in eine Szenerie (das Fenster ohne den Rahmen) eingefügt, welche dann mit »setScene« als Szenerie der Bühne festelegt wird.

Da es nicht erlaubt ist, ein Textfeld direkt auf eine Bühne zu stellen, muß es zunächst in eine Szenerie eingefügt werden. Eine Szenerie kann dann auf die Bühne gestellt werden.

Main.java

public final class Main extends javafx.application.Application
{

public void start( final javafx.stage.Stage stage )
{

stage.setScene
( new javafx.scene.Scene
( new javafx.scene.control.TextField
( "äöüÄÖÜ߀" )));

stage.show(); }}

transcript
 
Verwendete Methoden
»javafx.stage.Stage#setScene(javafx.scene.Scene)« Plaziert die als Argumentwert übergebene Szenerie auf diese Bühne
Verwendete Konstruktoren
»javafx.scene.Scene(javafx.scene.Parent)« Baut eine Szenerie auf, die das übergebene Elter enthält. (Wir schreiben Konstruktoren manchmal in einer Kurzschreibweise mit den eingeklammerten Parameter direkt hinter dem Typnamen)
»javafx.scene.TextField(java.lang.String)« Erzeugt ein Textfeld, welches die als Argumentwert übergebene Zeichenfolge enthält.
Aussprachehinweis
parent ˈpɛɚ ənt

Wir haben schon verschachtelte Erzeugungsaudrücke wie »new java.lang.Integer( new java.lang.String( "4" ))« kennengelernt. Dabei erzeugt der innere Erzeugungsaudruck ein neues Objekt, welches dann als Argument an den äußeren Erzeugungsaudruck übergeben wird. Auch in dem obigen Programm wurden solche verschachtelten Erzeugungsausdrücke verwendet.

Das folgende Programm zeigt eine teilweise Auflösung der Verschachtelung durch Deklaration einer Variablen »textField«.

Main.java

public final class Main extends javafx.application.Application
{

public void start( final javafx.stage.Stage stage )
{

final javafx.scene.control.TextField textField
= new javafx.scene.control.TextField( "äöüÄÖÜ߀" );

stage.setScene( new javafx.scene.Scene( textField ));
stage.show(); }}

transcript
 

Der Verschachtelung der Erzeugungsausdrücke entspricht eine Verschachtelung der erzeugten Objekte. Das heißt: Die erzeugte Szenerie enthält das erzeugte Textfeld und das Textfeld enthält einen Text. Diese Verschachtelung wird auch durch die folgende Abbildung wiedergegeben.

Abbildung
stage.setScene
.-----------------------------------------------.
| new javafx.scene.Scene |
| .-------------------------------------------. |
| | new javafx.scene.control.TextField | |
| | .---------------------------------------. | |
| | | "äöüÄÖÜ߀" | | |
| | '---------------------------------------' | |
| '-------------------------------------------' |
'-----------------------------------------------'
Aussprache
box bɑks (d)
stage steɪdʒ (d)

Übungsaufgaben

Refaktor (1)

Schreiben Sie das folgende Programm so um, daß es keine Verschachtelungen runder Klammern mehr enthält, aber immer noch dasselbe macht (Refaktor).

Main.java

public final class Main extends javafx.application.Application
{

public void start( final javafx.stage.Stage stage )
{

final javafx.scene.control.TextField textField
= new javafx.scene.control.TextField( "abc" );

stage.setScene( new javafx.scene.Scene( textField ));

stage.show(); }}

Übungsaufgabe

Jedes Textfeld enthält einen Text, den wir auch „den Text des Textfeldes“ nennen. Wenn man die Methode »getText()« eines Textfeldes aufruft, so erhält man den Text jenes Textfeldes als Wert des Aufrufs. (Anders gesagt: Der Aufruf der Methode »getText()« eines Textfeldes ergibt den Text, der in dem Textfeld steht.)

Schreiben Sie direkt hinter den Kommentar »/* B */« in dem folgenden Programm eine Anweisung, welche die Zeichenfolge des Textfeldes »textField« mit Hilfe von »java.lang.System.out.println« ausgibt. (Das Programm sollte dann »pqr« ausgeben.)

Main.java

public final class Main extends javafx.application.Application
{

public void start( final javafx.stage.Stage stage )
{
final javafx.scene.control.TextField textField
= new javafx.scene.control.TextField( "pqr" );

/* B */

javafx.application.Platform.exit();
java.lang.System.exit( 0 ); }}

Übungsaufgabe

Hinweis für den Dozenten  ► Diese Übungsaufgabe sollte nicht vor der Nachbesprechung der vorigen Übungsaufgabe bearbeitet werden.

Die Zeichenfolge eines Textfeldes kann festgelegt werden, indem man die Methode »setText(java.lang.String)« jenes Textfeldes aufruft, dabei enthält der Aufruf den neuen Text als Argumentwert. (Anders gesagt: Der Aufruf der Methode »setText(java.lang.String)« eines Textfeldes bestimmt den Text, der in dem Textfeld steht.)

Schreiben Sie direkt vor die in der vorigen Übungsaufgabe eingefügte Ausgabeanweisung, eine Anweisung, welche die Zeichenfolge des Textfeldes als »ghi« festlegt. (Das Programm sollte dann »ghi« ausgeben.)

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram724252 stefan_ram:724252 Textfelder in JavaFX Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724252, slrprddef724252, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/textfelder_javafx