2016-04-30 14 views
2

Ich weiß nicht, warum meine Anwendung meine Tastatur nicht erkennen kann. Anwendung ist ein JFrame, der SerialPortEventListener und KeyListener implementiert. Im Jframe meiner Anwendung habe ich 1 Tabbed Pane mit 2 Panels. Wenn ich einige Tasten drücke, funktioniert es nicht (NICHTS IM AUSGANG).KeyListener funktioniert nicht, mein Jframe kann meine Tastatur nicht erkennen

Ich zeige Ihnen mein Code (Nicht alle, sondern nur die meisten importants Teile):

meiner Klasse:

public class java_arduino_frame extends javax.swing.JFrame implements SerialPortEventListener, KeyListener { 

MY KEYS FUNKTIONEN:

public void keyTyped(KeyEvent e){ 
    throw new UnsupportedOperationException("not yet"); 
    } 

    public void keyPressed(KeyEvent e){ 
     int keyCode; 
     keyCode = e.getKeyCode(); 
     System.out.println(keyCode); 
    } 

    public void keyReleased(KeyEvent e){ 
    throw new UnsupportedOperationException("not yet"); 
    } 

Mein Konstrukteur meiner Klasse:

public java_arduino_frame() { 


getContentPane().setBackground(Color.LIGHT_GRAY); 
initComponents(); 
addKeyListener(this); 

} 

DIE HAUPT

public static void main(String args[]) { 
    strong text 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new java_arduino_frame().setVisible(true); 
     } 
    }); 

Antwort

1

A KeyListener wird nur reagieren, wenn die Komponente es registriert ist fokussierbar UND Fokus hat, da der Fokus auf die Schaltfläche zu übertragen bewirkt eine Schaltfläche klicken, wird der Rahmen hat keinen Eingabefokus mehr.

Es ist auch unwahrscheinlich, dass der Rahmen auch Tastaturfokus direkt erhalten könnte.

Als allgemeine Faustregel sollten Sie stattdessen die Key Bindings API verwenden, die Ihnen die Möglichkeit bietet, die Fokusprobleme zu umgehen.

Je nach dem, was Sie gerade tun, können Sie auch eine oder eine JTextField mit einer DocumentListener verwenden, vorausgesetzt, Sie möchten Zeichen über die serielle Verbindung senden. Weitere Informationen finden Sie unter Listening for Changes on a Document

Verwandte Themen