# Tastendruck abfangen



## Meganeger (5. Jul 2007)

Wollt mal fragen, wie ich einen einfachen Tastendruck mit Java abfangen kann.
Habe also ein ganz normales Fenster, wenn man dann z.B. die 'B' Taste drückt, soll ein einfacher Text ausgegeben werden.

Aber wie kann ich jetzt dieses 'B' abfangen?

Und wie kann ich dem Fenster dann sagen, dass der Text erscheinen soll?

Vielen Dank


----------



## The_S (5. Jul 2007)

Fenster = Java Programm oder eine vollkommen fremde Anwendung?


----------



## Meganeger (5. Jul 2007)

Das Fenster ist mein selber Programmiertes JavaProgramm (mit Swing).
Dieses Fenster soll den Tastendruck abfangen und auch in diesem Fenster soll dann der Text erscheinen.

Also keine Fremde Anwendung.


----------



## The_S (5. Jul 2007)

Ausgabe auf einer SwingComponente deiner Wahl. Abfangen mti einem KeyListener


----------



## Meganeger (5. Jul 2007)

Und wo bekomme ich den KeyListener her?


----------



## The_S (5. Jul 2007)

Indem du eine Klasse schreibst, die diesen Listener implementiert!?


----------



## Guest (5. Jul 2007)

Den KeyListener implementiert man selbst und du müsstest ihn dann deinem JFrame anhängen.


----------



## thE_29 (5. Jul 2007)

Was nur dann geht wenn nix außer der JFrame den fokus hat!

Nimm den AWTEventListener!


----------



## Meganeger (5. Jul 2007)

```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TasteAbfangen extends JFrame {
	Container c;
	JLabel text;
	JButton button;
	
	public TasteAbfangen() {
		c = getContentPane();
		c.setLayout(new FlowLayout());
		
		MeinKeyListener kL = new MeinKeyListener();
		button = new JButton();
		button.addKeyListener(kL);
		
		text = new JLabel("");
		
		c.add(button);
		c.add(text);
	}	
	
	class MeinKeyListener implements  KeyListener {
        public void keyPressed(KeyEvent k) {
            if(k.getKeyCode() == 10)
                text.setText("Gedrückt");
            
            
        }
        public void keyReleased(KeyEvent k){}
        public void keyTyped(KeyEvent k){}
    }
	
	public static void main(String[] args) {
		TasteAbfangen fenster = new TasteAbfangen();
		fenster.setTitle("Taste Abfangen");
		fenster.setSize(100,300);
		fenster.setVisible(true);
		fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}
```


Hat so auch funktioniert


----------

