Einführung in die Verwendung von Textfeldern in Swing (Java, JFC) im Rahmen der Lehre des Programmierens mit der Programmiersprache Java. [] (javax.swing.JTextField), Lektion, Seite 720339
https://www.purl.org/stefan_ram/pub/java_swing_textfelder_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Benutzereingaben mit Swing  einlesen

Wie schon behandelt, kann zu einem Fenster eine Textfläche (ein Textfeld) der Klasse "javax.swing.JTextField" hinzugefügt werden.

Durch die Nachricht "setText( java.lang.String t )" wird der Text des Textfeldes auf den Text "t" gesetzt.

Die entscheidende Neuerung an dem folgenden Programm ist der Aufruf »Main.this.text.addActionListener( this );«: Dadurch wird dem Textfeld-Objekt eine Referenz auf das Main -Objekt übergeben. Das Textfeld-Objekt merkt sich dann diese Referenz auf das Main -Objekts. So kann das Textfeld-Objekt später Nachrichten an das Main -Objekt schicken. Das Textfeld-Objekt versendet immer dann eine Nachricht an das Main -Objekt, wenn der Benutzer etwas eingegeben hat (bei Tippen der Eingabetaste). Das Main -Objekt kann dann auf solch eine Eingabe reagieren.

Das Textfeld ruft bei einer Benutzereingabe die Main-Methode »actionPerformed« auf. Damit der Compiler auf prüfen kann, daß diese Methode in der Klasse »Main« überhaupt implementiert wurde, muß die Klasse »Main« dazu die Schnittstelle »java.awt.event.ActionListener« implementieren.

Aufrufe durch Swing -Objekte bei bestimmten Ereignissen, wie etwa der Aufruf von »actionPerformed«, finden immer auf dem Prozessor »AWT-EventQueue-0« statt. Dadurch läuft die aufgerufene Methode »actionPerformed« dann ebenfalls auf dem Prozessor »AWT-EventQueue-0«, es ist in diesem Fall also nicht nötig, erst »invokeLater« zu verwenden, um auf den »AWT-EventQueue-0« zu gelangen.

Main.java
final class Main implements 
java.awt.event.ActionListener
java.lang.Runnable 
{
public final javax.swing.JTextField text  
= new javax.swing.JTextField( "Müßiggang" );
/* java.awt.event.ActionListener-Rückrufmethode für Window.this.text */  
public void actionPerformed( final java.awt.event.ActionEvent event ) 
{ Main.this.text.setText( Main.this.text.getText().toUpperCase() ); }
/* java.lang.Runnable-Rückrufmethode für javax.swing.SwingUtilities.invokeLater */ 
public void run()  
{ final javax.swing.JFrame frame 
= new javax.swing.JFrame( "Text in Großbuchstaben wandeln." ); 
Main.this.text.addActionListener( this ); 
frame.add( Main.this.text, java.awt.BorderLayout.CENTER );  
frame.setDefaultCloseOperation( javax.swing.JFrame.EXIT_ON_CLOSE ); 
frame.pack(); frame.setVisible( true ); }
public static void main( final java.lang.String[] args )  
{ javax.swing.SwingUtilities.invokeLater( new Main() ); }}

Man beachte: Alle  Variablen, Felder und Parameter sind final.

[UML collaboration diagram]
                              run 
.----------------. -------------> .-------.  
| SwingUtilities |---------------------------| :Main | 
| | | ----- | 
'----------------' '-------' 
actionPerformed(event) | 
.----------------. -------------> | 
| :JTextField |-------------------------------' 
| ----------- | 
'----------------'

Oberfläche
.----------------.
| Text in Gro... |
|----------------| Eingabetaste .----------------.
||Muessiggang ----------------------->| MUESSIGGANG |
'----------------' '----------------'
Verdrahtung
            .----------.
| Textfeld |
'----------'
|
Main-Objekt v
.-------------------------------------.
| |
| actionPerformed |
| |
'-------------------------------------'
Ablauf
                 Thread   Methode 
 
main: main ->| (einmalig) 

Existenz | EDT: run ->| (einmalig) 
des Main- | 
Objekts | EDT: actionPerformed ->| (beliebig oft) 

| close -> EXIT (einmalig) 

V

UML-Sequenzdiagramme

Die Zeit verläuft von oben nach unten.
„Entität“ ist irgendetwas (als Oberbegriff zu Klasse, Methode und Mensch)
Fortsetzung der Existenz eines Menschen »user« [UML sequence diagram]
  user
|
|
|
Anfang oder Fortsetzung der Existenz einer Klasse »Beta« [UML sequence diagram]
 Beta
|
|
|
Anfang der Existenz eines Objekts der Klasse Klasse »Beta« [UML sequence diagram]
:Beta
|
|
|
Ende der Existenz einer Entität [UML sequence diagram]
   |
|
|
X
Erzeugung eines neuen Objekts einer Klasse »Beta« durch eine Entität »x« [UML sequence diagram]
x
|
|
| new
|----------------------------->:Beta
| |
| |
| |
Eine Entität wird aktiv (d.h. eine ihrer Methoden beginnt zu laufen) [UML sequence diagram]
 |
|
|
.-.
| |
| |
| |
Die Aktivität einer Entität endet (d.h. keine ihrer Methoden läuft) [UML sequence diagram]
| |
| |
| |
'-'
|
|
|
Senden einer Nachricht »message« von einer Entität (links) an eine andere Entität (rechts) [UML sequence diagram]
  |                               |
| |
| message |
|----------------------------->.-.
| | |
| | |
| | |
Senden einer Nachricht »message« von einer Entität (links) an eine andere Entität (rechts) [UML sequence diagram]
  |                               |
| |
| message |
|----------------------------->.-.
| | |
| | |
| | |

 
user 


Main Swing | 
| | | 
.-. | new | 
| |------------------------->:Main | 
| | | | | 
| | .-. | | 
| |-------------->| | run | | 
'-' invokeLater | |-------->.-. | 
| | | | | new | 
X | | | |----------------------> :TextField | 
| | | | | | 
| | | | addActionListener(this) | | 
| | | |-------------------------->.-. | 
| | | | | | | 
| |<--------'-' '-' | 
'-' | | | 
| | | Enter .-. 
| | .-.<--------| | 
| | actionPerformed | | '-' 
| .-.<--------------------------| | | 
| | | '-' | 
| | | setText | | 
| | |-------------------------->.-. | 
| '-' | | | 
| | '-' | 
| | | | 
| | | Enter .-. 
| | .-.<--------| | 
| | actionPerformed | | '-' 
| .-.<--------------------------| | | 
| | | '-' | 
| | | setText | | 
| | |-------------------------->.-. | 
| '-' | | | 
| | '-' | 
| | | | 
| [X] | | .-. 
.-.<--------------------------------------------------| | 
| | | | '-' 
'-' | | | 
| | | | 
| | X | 
| X | 
X | 
|

Fenster
.----------------. 
| U Tex... _ O X | 
|----------------| 
|.--------------.| 
|| Müßiggang || 
|'--------------'| 
'----------------'

Das Main -Objekt existiert weiter, auch wenn der Main -Prozessor das Programm schon vollständig abgearbeitet hat ist. Zwischen verschiedenen Aufrufen von actionPerformed kann eine längere Pause sein, aber das Main -Objekt existiert weiter und alle Feldwerte bleiben über die Aufrufe von »run« und »actionPerformed« hinweg erhalten.

Die Werte von Feldern eines Objekts bleiben über mehrere Aufrufe von Methoden dieses Objekts hinweg erhalten, solange dieses Objekt existiert.

Übungsfrage

Wie viele Objekte der Klasse »Main« existieren während der Ausführung des Programms (zumindest zeitweise)?

Übungsfrage

Warum findet sich die Deklaration des Bezeichners »frame« innerhalb der Methode »run«, die Deklaration des Bezeichners »text« aber außerhalb?

Übungsfrage/Übungsaufgabe

Was passiert, wenn (unter Windows) versucht wird, das Wort „Müßiggang“ mit »java.lang.System.out.println« in die Konsole zu schreiben?

Übungsaufgabe (leicht)

Schreiben Sie das Programm so um, daß es in Kleinschreibung wandelt.

Zähler (mittelschwierig)

Für Verkehrszählungen werden Zähler verwendet, die bei jeder Betätigung weiterzählen. Schreiben Sie ein Programm, das bei jeder Betätigung der Eingabetaste einen Zähler, dessen Wert zunächst gleich 0 ist, um 1 hochzählt und den Wert im Textfeld anzeigt.
Hinweis: Eventuell ist es bei dieser Aufgabe hilfreich, in den Klassen »java.lang.String« und »java.lang.Integer« nach Methoden zu suchen, die es erlauben, eine Zahl in einen Text oder einen Text in eine Zahl zu wandeln. Da hierfür unter Umständen mehrere Aufrufe kombiniert werden müssen, ist dies nicht ganz einfach.
Zusatzaufgabe: Wenn der Benutzer im Textfeld eine andere Zahl eingibt, dann soll der Zähler ab dieser Zahl weiterzählen.

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 stefanram720339 stefan_ram:720339 javax.swing.JTextField source, source code,sourcecode, Programmier sprache java, Java Programm Java Programmiersprache Java Sprache Java Programmierung Programmieren in Java, Die Programmiersprache Java Javapgrammierung, Java-Programmierung, Java2, Java1.2, Java1.3, Java1.4, Java1.5, Java 2, Java 1.2, Java 1.3, Java 1.4, Java 1.5, Java 1.6, Java 1.7, Tiger, Dolphin, objektorientierte Programmierung, Java sun, , Softwareentwicklung, Software-Entwicklung, Software Entwicklung, Softwareprogrammierung, Software-Programmierung, Software Programmierung, Softwareherstellung, Software-Herstellung, Software Herstellung, Softwareerstellung, Software-Erstellung, Software Erstellung, Softwareengineering, Software-Engineering, Software Engineering, Softwareenginering, Software-Enginering, Software Enginering, Softwaremethodik, Software-Methodik, Software Methodik, Programmiermethodik, Programmier-Methodik, Programmier Methodik, Softwaredidaktik, Software-Didaktik, Software Didaktik, Methodik des Programmierens, Didaktik des Programmierens, Fachdidaktik des Programmierens, Fach-Didaktik des Programmierens, Programmieren, Programmierung, Computer Science, Informatik, Informatik, Informationspädagogik, Informationspaedagogik, Programmierer, programmieren, Quellcode, Quelltext, Quelle, Quellen, Informatiker, Fachinformatiker, Entwickler, mit Stil, mit Stiel, mit Still, , Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd720339, slrprddef720339, 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/java_swing_textfelder_de