Java Button的作用类似于Enter Key

时间:2011-12-24 17:28:09

标签: java swing key-bindings

我是Java新手,正在制作扑克游戏CLI应用程序的GUI。它需要“输入密钥”才能继续。我试图找出是否有一些“输入密钥”的事件处理程序,以便我可以将该事件更改为鼠标按钮。但不幸的是我找不到任何这样的东西。现在我想到将回车传递给Java控制台onClick事件。我试过了:

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 个答案:

答案 0 :(得分:3)

添加适当的ActionActionListener,然后实施KeyBindings输出表单 在此KeyBindings电话

中,javax.swing.Action应为Action
myButton.doClick()

调用添加到Action

ActionListenerJButton

答案 1 :(得分:0)

对于JButtons上的“Enter”,您可能希望使用JRootPane.setDefaultButton()。 JWindow和JDialog都有getRootPane()方法。

唯一的技巧是必须可以看到窗口/对话框以设置默认按钮。我通常只需在需要默认按钮的窗口中覆盖setVisible()

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

    super.setVisible(b);
}

答案 2 :(得分:0)

我不清楚你的问题,但根据我对你的情况的了解,这可能有所帮助。

(类似按钮)ActionPerformed(java.awt.event.ActionEvent evt)

答案 3 :(得分:0)

Swing中的键绑定由InputMapActionMap处理。

Sun在密钥绑定API上有一个很好的tutorial。本教程有这样说:

  

键绑定的替代方法是使用键侦听器。关键听众   有它们作为键盘输入的低级接口的位置,但是   响应个别键键绑定更合适   往往会导致代码更容易维护。关键听众也是   如果在组件时键绑定是活动的则很难   没有焦点。键绑定的一些优点是它们   有点自我记录,将收容层次结构纳入   帐户,鼓励可重复使用的代码块(Action对象),并允许   要轻松删除,自定义或共享的操作。而且,他们做   可以轻松更改操作绑定的键。另一个   Actions的优点是它们具有提供的启用状态   一种简单的方法来禁用该操作,而无需跟踪哪个   它附属的组件。

java.awt.event.KeyListenerKeyListener Tutorial)。