Кнопка Java действует как Enter Key - PullRequest
1 голос
/ 24 декабря 2011

Я новичок в Java и нахожусь в процессе создания графического интерфейса приложения CLI для игры в покер. Для продолжения требуется «Enter Key». Я попытался выяснить, есть ли какой-нибудь обработчик события для «Enter Key», чтобы я мог изменить это событие на кнопку мыши. Но, к сожалению, я не смог найти ничего подобного. Теперь я подумал о передаче возврата каретки в Java Console onClick Event. Я пробовал:

ContinueBtn = new JButton();
ContinueBtn.addMouseListener(this);
 .
 .
 .
 public void mouseReleased(MouseEvent e) {
     System.out.println("\r\n");

     //OR
     char c = (char) KeyEvent.VK_ENTER;
     System.out.println(c)

     //OR
     BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
     out.write("\r\n");
     out.newLine();
     out.flush();

     //OR
     BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
     out.write((char)10); /*OR*/ out.write((char)13);
 }

Это все еще не работает. Кто-нибудь может подсказать, что мне делать?

Ответы [ 4 ]

3 голосов
/ 25 декабря 2011

Добавьте правильное Action или ActionListener, затем реализует KeyBindings, форму вывода KeyBindings должно быть javax.swing.Action, внутри этого Action вызова

myButton.doClick()

, которые вызывают Action или ActionListener, добавленные к JButton

0 голосов
/ 24 декабря 2011

Мне не ясен ваш вопрос, но из того, что я понимаю в вашей ситуации, это может помочь.

(что-нибудь вроде кнопки) ActionPerformed (java.awt.event.ActionEvent evt)

0 голосов
/ 24 декабря 2011

Привязки клавиш в Swing обрабатываются с InputMap с и ActionMap с.

У Sun есть хороший учебник по API привязки ключей.В учебном пособии сказано:

Альтернативой привязкам клавиш является использование слушателей клавиш.Слушатели клавиш имеют свое место в качестве низкоуровневого интерфейса для ввода с клавиатуры, но для реагирования на отдельные сочетания клавиш более уместны и, как правило, более легко обслуживаемый код.Слушатели клавиш также трудны, если привязка клавиш должна быть активной, когда компонент не имеет фокуса.Некоторые из преимуществ связывания клавиш заключаются в том, что они в некоторой степени самодокументируются, учитывают иерархию содержимого, поощряют многократно используемые фрагменты кода (объекты Action) и позволяют легко удалять, настраивать или совместно использовать действия.Кроме того, они позволяют легко изменить ключ, к которому привязано действие.Еще одним преимуществом действий является то, что они имеют включенное состояние, которое обеспечивает простой способ отключить действие, не отслеживая, к какому компоненту оно прикреплено.

java.awt.event.KeyListener (KeyListener Учебник ).

0 голосов
/ 24 декабря 2011

Для 'Enter' на JButtons вы, вероятно, захотите использовать JRootPane.setDefaultButton(). И JWindow, и JDialog имеют метод getRootPane().

Единственная хитрость в том, что окно / диалоговое окно уже должно быть видно, чтобы установить кнопку по умолчанию. Я обычно просто перезаписываю setVisible() в окнах, которым нужна кнопка по умолчанию:

public void setVisible(boolean b) {
    if (b) {
        getRootPane().setDefaultButton(button);
  }

    super.setVisible(b);
}
...