suchen
HeimJavajavaLernprogrammWarum funktionieren meine KeyListener nicht in meinem JPanel?

Why Aren't My KeyListeners Working in My JPanel?

KeyListener reagieren nicht in JPanel: Ein häufiges Problem

Bei der Verwendung von KeyListeners zum Erkennen von Tastenanschlägen in einem JPanel stoßen Entwickler häufig auf das Problem, dass die Zuhörer lösen nicht die gewünschten Aktionen aus. Dieses Problem kann aus mehreren Faktoren entstehen.

Einschränkungen der fokussierten Komponente

KeyListener sind darauf angewiesen, dass sie sich an die fokussierte Komponente anhängen, um ordnungsgemäß zu funktionieren. Standardmäßig wird einem JPanel der Fokus nicht automatisch gewährt. Um dieses Problem zu beheben, legen Sie die Fokussierbarkeit explizit fest und fordern Sie den Fokus innerhalb des JPanel-Konstruktors an:

<code class="java">public JPanel extends JPanel implements KeyListener {

    public JPanel() {
        this.addKeyListener(this);
        this.setFocusable(true);
        this.requestFocusInWindow();
    }</code>

Alternative: Tastenkombinationen

Während das manuelle Festlegen des Fokus a Für eine praktikable Lösung ist die Verwendung von Tastenkombinationen ein robusterer Ansatz. Tastenkombinationen bieten einen flexiblen Mechanismus zum Zuordnen von Tastenanschlägen zu bestimmten Aktionen. So implementieren Sie Tastenkombinationen in einem JPanel:

<code class="java">public JPanel extends JPanel implements ActionListener {

    public JPanel() {
        setupKeyBinding();
        this.setFocusable(true);
        this.requestFocusInWindow();
    }

    private void setupKeyBinding() {
        int condition = JComponent.WHEN_IN_FOCUSED_WINDOW;
        InputMap inMap = getInputMap(condition);
        ActionMap actMap = getActionMap();

        inMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0), "Left");
        actMap.put("Left", new leftAction());
    }

    private class leftAction extends AbstractAction {

        public void actionPerformed(ActionEvent e) {
            System.out.println("test");
        }
    }
}</code>

In diesem Beispiel definiert die leftAction-Klasse die Aktion, die ausgeführt werden soll, wenn die linke Pfeiltaste gedrückt wird (in diesem Fall das Drucken von „test“ auf der Konsole). .

Das obige ist der detaillierte Inhalt vonWarum funktionieren meine KeyListener nicht in meinem JPanel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool