Java:侦听第二个KeyPress

时间:2018-08-17 23:52:26

标签: java swing keypress keylistener keyevent

我有一个颜色列表以及与之关联的数字。我想这样做,以便用户输入“ 2”时选择“ 2:绿色”。如果输入“ 21”,则选择“ 21:黄色”;等等。我正在尝试使用KeyPressed,我想我需要某种方式让程序侦听按下的第一个数字,然后等待第二秒钟查看是否按下了另一个数字。例如,如下所示:

// The integer pressed will always be zero or positive.
private void jComboBox1KeyPressed(KeyEvent evt) {
    int code = -1;

    for(int i = 0; i < 10; i++) {
        if (evt.getKeyCode() == i) {
            if (code == -1) {
                code = i;
            } else {
                code += i;
            }
            break;
        }
    }
    // PSEUDO-CODE: if (KeyEvent newEvt is pressed within 1 sec) {
        jComboBox1KeyPressed(newEvt);
    }
}

然后,我想我将拥有一个带有索引和颜色编号的键-值映射,并且我将基于jComboBox1(所选颜色编号)为code设置所选项目)。

我已经将其用于单个keyPressed:

private void jComboBox1KeyPressed(java.awt.event.KeyEvent evt) {                                      
    if (evt.getKeyCode() == KeyEvent.VK_0) {
        jComboBox1.setSelectedItem("2: Green");
    }
    else if (evt.getKeyCode() == KeyEvent.VK_1) {
        jComboBox1.setSelectedItem("21: Yellow");
    }
    else if (evt.getKeyCode() == KeyEvent.VK_2) {
        jComboBox1.setSelectedItem("13: Blue");
    }
    else if (evt.getKeyCode() == KeyEvent.VK_3) {
        jComboBox1.setSelectedItem("2041: Red");
    }
}

以下是界面:

app interface

请注意:这是我快速制作的一个示例,而不是我正在创建的实际应用。我的应用程序涉及更多的数字选项,但与本示例一样,数字将始终为正。

0 个答案:

没有答案