【发布时间】:2013-12-06 19:56:13
【问题描述】:
我正在为一个班级开发一个项目,但我想出了一个停顿。
所以,我想要做的是当用户在文本字段中按下回车键以验证 ID 时刷新标签。
这是我在按下“回车”键时要捕获的代码,它是文本字段“txtNbi”的事件:
if (evt.getKeyCode() == 10) {
this.BI = txtNbi.getText();
String BIs[];
BIs = DadosAplicacao.getInstance().getBIs();
for (int i = 0; i < BIs.length; i++) {
System.out.println("BI: " + this.BI + "\nBIlista: " + BIs[i]);
if (this.BI.equals(BIs[i])) {
encontrou.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pt/estg/dint/imagens/Ok.png")));
this.repaint();
} else {
encontrou.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pt/estg/dint/imagens/Cross.png")));
this.repaint();
}
}
}
txtNbi = 我的文本字段的名称;
BIs = 从“DadosAplicacao”类中获取预插入 ID 的字符串数组;
encontrou = 以图标形式接收图像的标签名称
这是我的问题:
我有以下数据:
- BIs[0] = 12345678
- BIs[1] = 87654321
- BIs[2] = 54321678
当我输入前两个时,标签不会变为“Ok.png”图标,但当我输入最后一个时,标签会将其图标变为“Ok.png”!
谁能帮我解决这个问题?
【问题讨论】:
-
不要使用 KeyListener,很可能是按键被字段消耗了,改为使用 ActionListener
标签: java jlabel jtextfield