首页 > 解决方案 > 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");

    }

我使用的上述代码我不知道如何为所有空白重复该代码。

标签: javaswingjframekeylistener

解决方案


我会提出这样的建议:

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);
     }
}

推荐阅读