Java 按钮连续显示按下状态,可';不要显示结果

Java 按钮连续显示按下状态,可';不要显示结果,java,events,jbutton,Java,Events,Jbutton,下面是我的action类,程序可以运行,但有时当您按下按钮时,它会持续显示按下的状态,并且结果不能显示在JTextField public class SsqAction implements ActionListener{ String luckNum=""; private JTextField luckField; public SsqAction(JTextField luckField){ this.luckField=luckFie

下面是我的action类,程序可以运行,但有时当您按下按钮时,它会持续显示按下的状态,并且结果不能显示在
JTextField

    public class SsqAction implements ActionListener{

    String luckNum="";
    private JTextField luckField;

    public SsqAction(JTextField luckField){
        this.luckField=luckField;
    }

    public void actionPerformed(ActionEvent event){
        int[] a={0,0,0,0,0,0,0};
        int tag=0;

        for(int k=0;k<6;){

            double i=Math.random()*33;
            int temp=(int)Math.ceil(i);
            a[k]=temp;
            for(int j=0;j<k;j++){
                if(a[j]==a[k]){
                    tag=1;
                    break;
                }
            }
            if(tag==0){
                k++;
            }

        }

        double j=Math.random()*16;
        int b=(int)Math.ceil(j);
        a[6]=b;

        for(int i=0;i<7;i++){
            luckNum=luckNum+a[i]+" ";
        }

        luckField.setText(luckNum);

    }

}
公共类SsqAction实现ActionListener{
字符串luckNum=“”;
私有JTextField-luckField;
公共SsqAction(JTextField-luckField){
this.luckField=luckField;
}
已执行的公共无效操作(操作事件){
int[]a={0,0,0,0,0,0};
int tag=0;
for(int k=0;k在for循环中

for(int k=0;k<6;)
但是,
tag
可能在此处设置为
1

if(a[j]==a[k]){
   tag=1;
   break;
}
break
中断内部循环,而不是外部循环)
现在,
tag
永远是
1
,而
k
永远不会递增→ 无限循环

提示:使用调试器,他是你最好的朋友。

在for循环中

for(int k=0;k<6;)
但是,
tag
可能在此处设置为
1

if(a[j]==a[k]){
   tag=1;
   break;
}
break
中断内部循环,而不是外部循环)
现在,
tag
永远是
1
,而
k
永远不会递增→ 无限循环


提示:使用调试器,他是您最好的朋友。

您发布的代码不会导致您描述的问题。请发布一个SSCCE,或仅发布其余代码。您可能有一个无限循环(
)(int k=0;k您发布的代码无法导致您描述的问题。请发布SSCCE,或仅发布其余代码。您可能有一个无限循环(
)(int k=0;kThank you@Maroun,我将我的程序与你的答案进行了更正。我将赋值语句“int tag=1”放在顶部循环中,它起作用了。谢谢!谢谢@Maroun,我将我的程序与你的答案进行了更正。我将赋值语句“int tag=1”放在顶部循环中,它起作用了。谢谢