2016-11-26 3 views
0

Zuerst weiß ich, es gibt eine Menge Bedrohungen über "KeyListener funktioniert nicht". Das Problem ist, ich weiß nicht, warum es nicht funktioniert und die anderen Threads sind keine Hilfe für mich ... Das Programm sollte geschlossen werden, wenn der Benutzer "Shift" drückt.KeyListener funktioniert nicht

public class Main extends JFrame implements KeyListener{ 

public static void main(String[] args){ 
    new Main(); 
} 

public Main(){ 
    JFrame guiFrame = new JFrame(); 

    //make sure the program exits when the frame closes 
    guiFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
    guiFrame.setLayout(new FlowLayout()); 
    guiFrame.setTitle(""); 
    guiFrame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
    guiFrame.setUndecorated(true); 
    guiFrame.setAlwaysOnTop(true); 
    guiFrame.getContentPane().setBackground(Color.black); 


    JLabel jb1 = new JLabel("WER DAS LIEST IST BLÖD",JLabel.CENTER); 
    jb1.setFont(new Font("Serif", Font.BOLD, 140)); 
    jb1.setForeground(Color.WHITE); 
    jb1.setLocation((guiFrame.getWidth()-jb1.getWidth())/2,50); 


    guiFrame.add(jb1); 
    //This will center the JFrame in the middle of the screen 
    guiFrame.setLocationRelativeTo(null); 
    guiFrame.setVisible(true); 
} 

@Override 
public void keyPressed(KeyEvent e) { 

} 

@Override 
public void keyReleased(KeyEvent e) { 
    if(e.getKeyCode() == KeyEvent.VK_SPACE){ 
     System.exit(0); 
    } 

} 

@Override 
public void keyTyped(KeyEvent e) { 
    // TODO Auto-generated method stub 

} 

}

+0

Leider nicht verschieben, * -Raum –

+0

Es gibt eine Schaltfläche Bearbeiten nahe dem Ende Ihres Beitrags. Nutzen Sie dies, um Fehler in Ihrem Beitrag zu korrigieren und zusätzliche relevante Informationen hinzuzufügen. Haben Sie Fehler? Wenn Sie das Debuggen hinzufügen, sehen Sie, dass Ihr veröffentlichter Key-Event aufgerufen wird? Was ist der Wert von e.getKeyCode()? – scrappedcola

+0

Wenn Sie möchten, dass die App beendet wird, wenn der Benutzer UMSCHALTTASTE drückt, warum testen Sie dann auf VK_SPACE? –

Antwort

3

einfach die KeyListener Schnittstelle implementiert ist nicht genug - man muss es bis zu einem gewissen Komponente hinzuzufügen (in Ihrem Fall die JFrame).

Probieren Sie etwas wie

guiFrame.addKeyListener(this); 

Sehen Sie hier für die API: http://docs.oracle.com/javase/8/docs/api/java/awt/Component.html#addKeyListener-java.awt.event.KeyListener-

Und hier für eine der offiziellen Tutorial: https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html

+0

Vielen Dank –

Verwandte Themen