java - JFrame Keylistener 正在接受用户的输入
问题描述
我已将 a 添加KeyListener
到 aJFrame
String1:编码显示:_ _ d _ ng
如果我按 c 它应该填补空白,否则它应该在我按另一个键时等待。
我只需要给用户 4 次机会。
我已经在控制台中构建了它,但在控制台中我可以在循环中添加扫描仪。
我该怎么做JFrame
?
JTextField textField = new JTextField();
JLabel keylabel = new JLabel("Press any key");
@Override
public void keyPressed(KeyEvent e) {
int keycode = e.getKeyCode();
if(keycode == KeyEvent.VK_C)
keylabel.setText("You pressed correct");
else
keylabel.setText("You pressed wrong");
}
我使用的上述代码我不知道如何为所有空白重复该代码。
解决方案
我会提出这样的建议:
JTextField textField = new JTextField();
JLabel keylabel = new JLabel("Press any key");
private int tries = 10;
@Override
public void keyPressed(KeyEvent e) {
keylabel.setText("You pressed " + (e.getKeyCode() == KeyEvent.VK_C ? "correct" : "wrong"));
if (--tries <= 0) {
keylabel.setText("No tries left");
textField.setEnabled(false);
}
}
推荐阅读
- youtube - 在特定视频/索引处启动 YouTube 嵌入播放列表
- sql - 复制从属表
- node.js - 将 CSV 写入 Amazon S3 存储桶而不将其存储在本地计算机上
- c++ - 主线程死锁 C++
- flutter - 如何在每只耳朵中播放两个不同的频率?(扑)
- pandas - Python - 从响应变量转换为 Pandas 数据框
- python - Selenium Chromedriver Headless 模式问题,不加载 url
- azure - Azure 函数代理 - 冷启动 - 错误 429 请求过多
- python-3.x - 基于返回的两个新列在数据框应用中有两个值
- c - 创建可加载内核模块 (LKM) 以阻止 IP 地址范围