我有一个颜色列表以及与之关联的数字。我想这样做,以便用户输入“ 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");
}
}
以下是界面:
请注意:这是我快速制作的一个示例,而不是我正在创建的实际应用。我的应用程序涉及更多的数字选项,但与本示例一样,数字将始终为正。