我正在为一个班级开发项目,但我停下来了。因此,我想做的是当用户在文本字段中按Enter键以验证ID时刷新标签。这是我的代码,当按下“ enter”键时要捕获,这是文本字段“ 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 =将图像作为图标接收的标签名称
所以这是我的问题:
我有以下数据:-BI [0] = 12345678-BI [1] = 87654321-BI [2] = 54321678
[当我键入前两个时,标签不会更改为“ Ok.png”图标,但是当我键入最后一个时,标签会将其图标更改为“ Ok.png”!
谁能帮我解决这个问题?
找到键入的ID后需要break
if(this.BI.equals(BIs[i]))
{
encontrou.setIcon(newjavax.swing.ImageIcon(getClass().getResource("/pt/estg/dint/imagens/Ok.png")));
this.repaint();
break;
}
您需要使用DocumentListener类:
txtNbi.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent documentEvent) {
//add the code handling the different conditions here
}
});