Wie kann die Eingabe in eine Textkomponente erfasst werden?

Die Eingabe in eine Textkomponente, wie etwa ein JTextField kann durch die Anmeldung bei einem KeyListener in Echtzeit 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.