为打字游戏添加 ActionListener

Posted

技术标签:

【中文标题】为打字游戏添加 ActionListener【英文标题】:Adding ActionListener for a typing game 【发布时间】:2021-07-02 12:42:58 【问题描述】:

已经查看了很多关于使用 ActionListenerJTextField 的文档,并且看到了很多其他类似原因的问题,但我似乎无法将解决方案应用于我的问题。 我需要的基本前提是屏幕上会有一个文本字段供用户输入单词。

我希望计时器在某个按键按下后开始在后台运行。 (最好是输入或空格键),然后当整个句子写完时计时器应该停止。到目前为止,我还没有很幸运地让一个事件从按键开始。下面是一些实际上不起作用的代码,我可以使用文本框成功创建框架,但我无法让动作侦听器达到我想要的目的。

input = new JTextField();
input.setBounds(10, 150, 780, 35);
panel.add(input);
input.addActionListener(new ActionListener());

public void actionPerformed(ActionEvent e) 

没有在actionPerformed 方法中添加任何内容,因为我运行的所有测试都不成功。不要求完整的代码,但指向正确方向的指针可能会有所帮助。是的,我已阅读有关如何使用 addActionListener() 的文档,但我无法将其应用于我想做的事情。

【问题讨论】:

对于JTextField,当JTextField 具有键盘focus 时,当用户按 时调用ActionListener。您想测量用户在JTextField 中输入句子所需的时间吗?你怎么知道整个句子都写完了 @Abra 只是告诉用户在他们完成句子后按 Enter 键。我对 Ryan 建议的 KeyListener 有更多的运气 【参考方案1】:

您需要一个 KeyListener,而不是 ActionListener。

【讨论】:

吃完后会查看 KeyListener 谢谢【参考方案2】:

实现KeyListener,然后在方法keyPressed(KeyEvent name)中, 使用 switchif 语句键入 e.getKeyCode。 例如(伪代码):

 javax.swing.JTextField input=null;
 javax.swing.JPanel panel=null;
 public class X implements java.awt.event.KeyListener

 input = new javax.swing.JTextField();
 input.setBounds(10, 150, 780, 35);

 panel.add(input);
 input.addActionListener(new ActionListener());
 input.addKeyListener(this);
 public void keyPressed(java.awt.event.KeyEvent e)
 if(e.getKeyCode==e.VK_W)
 //Enter code here 
 public void actionPerformed(ActionEvent e) 
 //then upon enter the timer stops
 


 

【讨论】:

以上是关于为打字游戏添加 ActionListener的主要内容,如果未能解决你的问题,请参考以下文章

如何用Python语言制作打字游戏?快教教我,急急急

PyGame 英文打字游戏

C语言项目实战:《打字母游戏》零基础项目丨183 行源代码示例

键盘输入盲打训练, 打字练习,打字游戏 打字教程推荐

windows端打字游戏——游戏进行

打字游戏