# KeyListener Strg+s



## BingBong (3. Mai 2010)

Hi,

Ich habe ein JFrame mit einem implementiertem KeyListener. Jetzt möchte ich abfragen, ob Strg+s gedrückt wurde. Mein Problem ist, dass das "s" zu einem  wird, wenn ich s und Strg zusammen benutze:

```
public void keyPressed(KeyEvent e)
			{

				System.out.println(e.isControlDown() + " " + e.getKeyChar());

				if (e.getKeyChar() == 'c' && e.isControlDown())
				{
					System.out.println("Tastenkombi");
					strg = false;

				}
			}
```

Wie kann ich das anders abfragen? Oder habe ich einen Fehler in meinem Code?


----------



## BingBong (3. Mai 2010)

Tut mir Leid, ich meine natürlich Strg+c.


----------



## Gast2 (3. Mai 2010)

How to Use Key Bindings (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Other Swing Features)


----------



## BingBong (3. Mai 2010)

Danke. Aber wie mache ich das jetzt genau?? Ich möchte, wenn Strg+c gedrückt wurde, eine Methode aufrufen. Ich mache ja 


```
panel.getInputMap().put(KeyStroke.getKeyStroke(c), "test");
```

Doch wie mache ich strg + c und nicht nur c?? Und zweitens, wie kann ich statt "test" eine Methode aufrufen??


----------



## eRaaaa (3. Mai 2010)

BingBong hat gesagt.:


> Doch wie mache ich strg + c und nicht nur c?? Und zweitens, wie kann ich statt "test" eine Methode aufrufen??




```
panel.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK), "test");
        panel.getActionMap().put("test", new AbstractAction() {
			@Override
			public void actionPerformed(ActionEvent e) {
				foo(); 
			}
		});
```

test ist ja nur der key! Innerhalb der actionPerformed könntest du jetzt deine Methode aufrufen !


----------



## BingBong (3. Mai 2010)

Danke jetzt gehts


----------

