我是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);
}
它仍然无效。谁能建议我该怎么办?
答案 0 :(得分:3)
添加适当的Action
或ActionListener
,然后实施KeyBindings
输出表单
在此KeyBindings
电话
javax.swing.Action
应为Action
myButton.doClick()
调用添加到Action
ActionListener
或JButton
答案 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中的键绑定由InputMap
和ActionMap
处理。
Sun在密钥绑定API上有一个很好的tutorial。本教程有这样说:
键绑定的替代方法是使用键侦听器。关键听众 有它们作为键盘输入的低级接口的位置,但是 响应个别键键绑定更合适 往往会导致代码更容易维护。关键听众也是 如果在组件时键绑定是活动的则很难 没有焦点。键绑定的一些优点是它们 有点自我记录,将收容层次结构纳入 帐户,鼓励可重复使用的代码块(Action对象),并允许 要轻松删除,自定义或共享的操作。而且,他们做 可以轻松更改操作绑定的键。另一个 Actions的优点是它们具有提供的启用状态 一种简单的方法来禁用该操作,而无需跟踪哪个 它附属的组件。