按钮持续显示按下状态,无法显示结果

时间:2013-07-28 08:16:09

标签: java events jbutton

下面是我的动作类,程序可以运行,但有时当你按下按钮时,它会持续显示按下状态,结果无法显示在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);

    }

}

1 个答案:

答案 0 :(得分:3)

在你的for循环中

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

您不会增加k。你在这里增加它:

if(tag==0){
   k++;
}

但是,tag可能会设置为1

if(a[j]==a[k]){
   tag=1;
   break;
}

break打破内循环,而不是外循环) 现在,tag永远是1k永远不会增加→无限循环。

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