Java 单击按钮时更改标签文本

Java 单击按钮时更改标签文本,java,swing,actionevent,Java,Swing,Actionevent,我正在尝试创建一个swing应用程序,它是一个测验。我需要jLabel在单击按钮时进行更改,但当我单击按钮时,应用程序会锁定。有人能给我指出正确的方向吗 我的按钮点击代码如下: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String[] questions = {"test0","test1","test2"

我正在尝试创建一个swing应用程序,它是一个测验。我需要jLabel在单击按钮时进行更改,但当我单击按钮时,应用程序会锁定。有人能给我指出正确的方向吗

我的按钮点击代码如下:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String[] questions = {"test0","test1","test2","test3","test4","test5","test6"};
    String[] answers = {"","","","","","",""};
    int i = 0;

    do {
        jLabel2.setText(questions[i]);
        index.setText(String.valueOf(i));
        if (txtAnswer.getText().toLowerCase().equals(answers[i].toLowerCase())) {
            i++;
            jLabel2.setText(questions[i]);
        }
        else {
            add(lblWrong);
        }
    }
    while(i < 7);
}      
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
字符串[]问题={“test0”、“test1”、“test2”、“test3”、“test4”、“test5”、“test6”};
字符串[]答案={“”、“”、“”、“”、“”、“”、“”、“”、“”};
int i=0;
做{
jLabel2.setText(问题[i]);
index.setText(String.valueOf(i));
if(txtAnswer.getText().toLowerCase().equals(answers[i].toLowerCase())){
i++;
jLabel2.setText(问题[i]);
}
否则{
添加(lblWrong);
}
}
而(i<7);
}      
我得到一个警告,evt参数没有被使用,这可能是一个问题吗


谢谢你

在循环的
else
条件下,你根本不需要在
i
中添加1,因此你可能会在它永远不会增加的情况下结束,因此它将是一个无限循环(锁定你的程序)。

你不需要do-while循环。它将你困在按下按钮的方法中,就好像你得到了一个错误的答案,你不断地输入else并且不能离开它,阻止了应用程序的工作。替换为if语句,检查i<7。

是否应该将标签放入数组中?我的标签在actionevent方法之外声明,我不明白。您只是重复7次并更新相同的JLabel?这有什么意义呢?我不希望他们在做对之前继续前进。我不应该只在if语句中增加它吗?