Swing KeyBinding

Shadoka

Mitglied
Hallo mal wieder,

heute hab ich ein Problem mit KeyBindings...ich meine mich an Oracles Tutorial gehalten zu haben, aber es funktioniert nicht, es will einfach nichts passieren, wenn ich die mit einem Befehl gebindete Taste drücken will.

Hier der Code:

Java:
private void initActions() {
		this.setUndoAction(new AbstractAction() {

			private static final long serialVersionUID = -1810203876161203260L;

			@Override
			public void actionPerformed(ActionEvent e) {
				UndoService.getInstance().undo();
			}

		});
	}

	private void initBindings() {
		this.getInputMap().put(KeyStroke.getKeyStroke("z"), "undoAction");
		this.getActionMap().put("undoAction", undoAction);
	}

Ich habe es bereits an verschiedene JComponents gehängt, deswegen vermute ich mal, dass der Fehler im Code liegt...

Grüße,
 

bERt0r

Top Contributor
Probiers mal so:
Java:
KeyStroke.getKeyStroke('Z')
Wenn du Anführungszeichen machst wird das ganze ein String und es wird eine andere getKeyStroke Funktion aufgerufen.
 

Shadoka

Mitglied
HA! Danke sehr, funktioniert :)

Aber noch eine Frage, ich habe eine Undo-Funktion geschrieben und die soll natürlich vorzugsweise auf Strg+Z hören. Kann man das mit KeyBindings realisieren oder sollte man besser auf KeyListener zurückgreifen?
 

Ähnliche Java Themen


Oben