通过jtextfield刷新标签

问题描述 投票:1回答:2

我正在为一个班级开发项目,但我停下来了。因此,我想做的是当用户在文本字段中按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”!

谁能帮我解决这个问题?

java jlabel jtextfield
2个回答
1
投票

找到键入的ID后需要break

if(this.BI.equals(BIs[i]))
{
    encontrou.setIcon(newjavax.swing.ImageIcon(getClass().getResource("/pt/estg/dint/imagens/Ok.png")));
    this.repaint();
    break;
}

2
投票

您需要使用DocumentListener类:

txtNbi.getDocument().addDocumentListener(new DocumentListener() {
     public void changedUpdate(DocumentEvent documentEvent) {
     //add the code handling the different conditions here
     }
});
© www.soinside.com 2019 - 2024. All rights reserved.