# JButton durch Enter auslösen



## RungetSvohu (26. Dez 2012)

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!


----------



## Camino (26. Dez 2012)

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.


----------



## RungetSvohu (26. Dez 2012)

Camino hat gesagt.:


> 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.


----------



## bERt0r (27. Dez 2012)

How to Use Buttons, Check Boxes, and Radio Buttons (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)


----------



## RungetSvohu (27. Dez 2012)

Danke, aber was mache ich, wenn ich mehr als einen Button habe und durch Enter-Druck soll der im Fokus gedrückt werden?


----------



## IMartin (27. Dez 2012)

```
UIManager.put("Button.defaultButtonFollowsFocus", Boolean.TRUE);
```


----------



## bERt0r (27. Dez 2012)

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:

```
getRootPane().setDefaultButton(setButton);
```


----------



## RungetSvohu (28. Dez 2012)

Danke, das kannte ich noch nicht.


----------

