Вы можете использовать setDefaultButton()
, "который будет активирован, когда событие активации, определяемое пользовательским интерфейсом (обычно ключ Ввод ), происходит в корневой панели независимо от того, активен ли он или неткнопка имеет фокус клавиатуры. "
JFrame f = new JFrame("Dice Game");
JButton b = new JButton("End Turn");
f.getRootPane().setDefaultButton(b);
Вот очень простой пример , который предлагает, как вы могли бы структурировать свою игру, чтобы избежать бесконечного цикла, не прибегая к нескольким потокам.
Кроме того, плохая идея - ловить исключение без наименьшего некоторого вывода, например, e.printStackTrace()
.