Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich bin mal wieder am rumprobieren und hab ne Frage. Gibt es eine Methode oder sowas in der Art womit ich durch drücken einer definierten Taste (z.B. t) während das Programm läuft, eine Methode starten kann?
Habe noch nie solche Befehle von der Tastatur entgegen genommen.. :?
a) Du hast eine Konsolenanwendung. Dann lautet die Antwort auf deine Frage nein. Dann kannst du nur aus System.in einlesen (wie du es sicher kennst). Da kriegst du aber nur was raus, sobald der Benutzer die Enter-Taste drückt.
b) Du hast eine grafische AWT/Swing-Anwendung. In dem Fall solltest du aber eigentlich schon so weit sein, dass du Wildcards Link verstehen kannst.
Eine alternative und (imho) einfacher zu verstehende, aber ältere und obsolete Methode zu der im Link beschriebenen sind KeyListener. Die sind aber sicher im Buch deiner Wahl ausführlich beschrieben
Ich brauche es für eine Swing-Anwendung. Das andere wäre ja ganz einfach :wink: .
Das Problem das ich aber habe ist, dass ich kein spezielle Komponente fokusiere sonder die Taste immer eine Methode aufrufen sollte. Was muss ich nun anstelle des component einsetzen?
Code:
Action doNothing = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
//do nothing
}
};
component.getInputMap().put(KeyStroke.getKeyStroke("F2"), "doNothing");
component.getActionMap().put("doNothing", doNothing);
Ich vermute mal, du hast irgendwo ein JFrame. Dann kannst du das, bzw. die contentPane davon verwenden. Falls das ganze über mehrere Fenster hinweg gelten soll, solltest du dir mal diese Methode anschauen.
Besten Dank für all die Infos. Ich muss leider sagen das ich zu dämlich war die Beispiele auf der Seite von Wildcard zu sehen :roll: . Die sind dann doch ein bisschen verständlicher als die nackten Codeerklärungen... Bevor ich euch jetzt noch mehr belästige, versuche ich das ganze mal mit Hilfe der Beispiele zu verstehen. Sonst melde ich mich dann wieder
So ich hab das ganze mal studiert und porbiert und ich habe es tatsächlich hingekriegt. Aber da ist noch etwas das ich nicht verstehe und zwar wie kann ich das programmieren, dass die Methode
Code:
akustik.akustWarn()
Nur einmal ausgefürht wird auch wenn die Taste gedrückt bleibt. Ich wollte das ganze eigentlich mit KeyListener anstelle des ActionListener machen nur das geht halt eben nicht.
Gibts da etwas aderes kompaktes?
Code:
test1.getInputMap(test1.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD1,0),"t1");
test1.getActionMap().put("t1", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
akustik.akustWarn();
System.out.println("Taste 1 auf dem Nummernblock wurde gedrueckt.");
}
});