# KeyEvent STRG+l, CTRL_DOWN_MASK



## julchen81 (25. Mrz 2008)

Guten Morgen!

Hab schon in einigen Foren nachgesehen, aber ganz krieg ich's einfach nicht hin:
Habe ein JTable implementiert und möchte über der Zeile, die markiert ist bzw. in der der Cursor ist, eine leere Zeile einfügen, wenn strg+l gedrückt wird.

Dazu habe ich dem JTable table einen KeyListener hinzugefügt: table.addKeyListener(new AddLine(this));

dabei ist AddLine eine Klasse, die das Interface KeyListener implementiert:

```
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class AddLine implements KeyListener {
	GUI gui;
	
	public AddLine(GUI gui) {
		this.gui = gui;
	}
	
	public void keyPressed(KeyEvent e) {
		
		if ((0 <= e.CTRL_DOWN_MASK) && (e.getKeyChar() == 'l')) {
			System.out.println("beides");
		}
	}	
.........
```

Jetzt habe ich folgendes Problem:
auf die STRG-Taste reagiert mein Programm überhaupt nicht. Wenn ich im Code CTRL_DOWN_MASK durch ALT_DOWN_MASK ersetze, gibt das Programm beim Drücken auf ALT+l die print-Anweisung "beides" aus.

Wie kriege ich das mit STRG+l bitte hin?

Außerdem gefällt mir natürlich "0 <= e.STRG_DOWN_MASK" nicht. Dieses "<=" würde ich gerne durch "==" ersetzen. Welchen Wert liefert e.STRG_DOWN_MASK, wenn ich die STRG-Taste drücke?


Vielen Dank für jeden Tipp!  :wink: 
Julia


----------



## MiDniGG (25. Mrz 2008)

Lass dir doch mal den Wert von STRG.... ausgeben mit System.out.println();


----------



## The_S (25. Mrz 2008)

Wie wärs mit KeyEvent#isControlDown ?


----------



## MiDniGG (25. Mrz 2008)

Hab mich vertan:

STRG = 17

also einfach prüfen, ob evt.getKeyCode() == 17 ist ;-)


----------



## julchen81 (25. Mrz 2008)

ok, jetzt habe ich's so abgeändert:

```
if ((e.isControlDown()) && (e.getKeyChar() == 'l')) {....
```

und wieder funktioniert's nur wenn ich statt isControlDown isAltDown verwende, also die STRG-Taste mag er anscheinend nicht  ???:L 

Wie kann das denn sein?

Julia


----------



## julchen81 (25. Mrz 2008)

und jetzt hab ich auch noch

```
System.out.println(e.CTRL_DOWN_MASK);
```
probiert, und bei mir gibt's 128 aus... also ich glaub das mit e.isControlDown ist besser... wobei's schon mal erfreulich ist, dass diesmal auf die STRG-Taste überhaupt reagiert wird! ;-)

Julia


----------



## The_S (25. Mrz 2008)

Also  das geht bei mir


```
if (evt.isControlDown() && evt.getKeyCode() == KeyEvent.VK_L) {
	System.out.println(3);
}
```


----------



## julchen81 (25. Mrz 2008)

damit geht's jetzt bei mir auch... komisch. Die alte Version funktioniert nach wie vor nicht.

Aber Hauptsache, es läuft!

Dickes Dankeschön!  :wink: 
Julia


----------

