Wie kann die Eingabe in eine Textkomponente erfasst werden?
Das Beispiel zeigt ein einfaches Fenster mit einem JTextField
und einem JLabel
. Sofort bei der Eingabe in
das Textfeld wird der Text auf dem Label ebenfalls
gezeigt.
import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.BoxLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingUtilities; public class AutomatischeEingabeErfassung { public AutomatischeEingabeErfassung() { init(); } private void init() { JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS)); JLabel label = new JLabel(" "); JTextField field = new JTextField(15); field.addKeyListener(new KeyAdapter() { public void keyReleased(KeyEvent e) { label.setText(field.getText()); } }); panel.add(label); panel.add(field); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(panel); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(() -> new AutomatischeEingabeErfassung()); } }
In inti()
werden der JFrame
mit den zwei Komponenten erzeugt. Beim JTextField
wird ein KeyListener
angemeldet, der jede
Tastenaktion registriert. Um nicht alle drei Methoden
des Interface KeyListener
implementieren zu
müssen, wird hier ein KeyAdapter
angewendet. Die Klasse erlaubt es, nur die
benötigte Methode zu implementieren.
Im
vorliegenden Fall erfasst er den Text des Textfeldes und
setzt diesen auf das Label. Dies geschieht bei jeder
Tastenlösung, sodass die Anzeige auf dem Label in
Echtzeit geändert wird.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.