JButton durch Enter auslösen

RungetSvohu

Bekanntes Mitglied
Hallo Leute,

interessanter Weise kann in Java, wenn man ein Formular mit TextFields und Button erstellt automatisch mit TAB zwischen den Feldern wechseln, jedoch ist nicht automatisch der Druck der Enter-Taste bei markiertem JButton mit dem Auslösen der entsprechenden Aktion verknüpft. Gibt es, um das nachzurüsten, einen einfachen Weg (vielleicht nur eine Eigenschaft im JButton von false auf true stellen?), oder muss man tatsächlich einen Listener implementieren, dort abfragen, ob die Enter-Taste gedrückt wurde und dann die entsprechende Aktion aufrufen?

Danke und frohe Weihnachten!
 
Ich denke mal, ohne ActionListener wird es nicht gehen. Woher soll der Button denn sonst auch wissen, was er tun soll?! Aber soweit ich weiss, kann man (wenn die Listener hinzugefügt wurden) sowohl beim Textfeld als auch beim Button, wenn diese den Fokus haben, der ActionListener mit der Enter-Taste ausgelöst werden.

Und ich glaube auch gelesen zu haben, dass man einen Button als DefaultButton festlegen kann, damit er auf die Enter-Taste reagiert.
 
Zuletzt bearbeitet von einem Moderator:
Ich denke mal, ohne ActionListener wird es nicht gehen. Woher soll der Button denn sonst auch wissen, was er tun soll?! Aber soweit ich weiss, kann man (wenn die Listener hinzugefügt wurden) sowohl beim Textfeld als auch beim Button, wenn diese den Fokus haben, der ActionListener mit der Enter-Taste ausgelöst werden.

Und ich glaube auch gelesen zu haben, dass man einen Button als DefaultButton festlegen kann, damit er auf die Enter-Taste reagiert.

Der ActionListener liegt ja schon auf dem Button. Nur wird dieser leider nicht ausgeführt, wenn ich Enter drücke, sondern nur, wenn ich drauf klicke. Ich meinte nur, ohne extra KeyListener. Ich will also, dass der ActionListener des Buttons angesprochen wird, wenn Enter gedrückt wird, während der Button den Fokus hat und zwar ohne das selbst über einen KeyListener zu implementieren.
 
Java:
UIManager.put("Button.defaultButtonFollowsFocus", Boolean.TRUE);
 
Wenn der Button den Fokus hat wird er sowieso mit Enter gedrückt, wenn du dir meinen Link angesehen hättest, wäre dir diese Zeile aufgefallen:
Java:
getRootPane().setDefaultButton(setButton);
 

Neue Themen


Zurück
Oben