Moing zusammen
Ich habe ein Problem und zwar geht es darum das ich mit einem Tastendruck einen Button (test1) anwählen möchte. Das funktioniert soweit schon mal aber das Problem dabei ist, dass ich verhindern möchte, dass wenn die Taste gedrückt bleibt, mir der Befehl unendlich abgefeuert wird. Ich möchte also erreichen, dass der Befehl nur einmal ausgeführt wird, unabhängig, wie lange die Taste gedrückt wird.
Das ganze habe ich mit zwei Varianten ausprobiert nur halt eben mit wenig erfolg.
Kennt jemand von euch ne gute Lösung?
Variante 1
Variante 2
Ich habe ein Problem und zwar geht es darum das ich mit einem Tastendruck einen Button (test1) anwählen möchte. Das funktioniert soweit schon mal aber das Problem dabei ist, dass ich verhindern möchte, dass wenn die Taste gedrückt bleibt, mir der Befehl unendlich abgefeuert wird. Ich möchte also erreichen, dass der Befehl nur einmal ausgeführt wird, unabhängig, wie lange die Taste gedrückt wird.
Das ganze habe ich mit zwei Varianten ausprobiert nur halt eben mit wenig erfolg.
Kennt jemand von euch ne gute Lösung?
Variante 1
Code:
test1.getInputMap(test1.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD1,0,false),"t1");
test1.getActionMap().put("t1", new AbstractAction() {
public void actionPerformed(ActionEvent dInput) {
akustik.akustWarn();
System.out.println("Taste 1 auf dem Nummernblock wurde gedrueckt.");
}
});
Variante 2
Code:
test1.getInputMap(test1.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("1"),"pressed");
test1.getInputMap(test1.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("released 1"),"released");
//Listener Klasse die zum Button test1 gehört:
public class TestListener extends KeyAdapter{
public void keyPressed(KeyEvent a){
int taste;
taste = a.getKeyChar();
if(taste == 49)
akustik.akustWork();
}
}