为JButton分配随机值

时间:2015-03-12 10:25:10

标签: java arrays swing random jbutton

我需要为JButton Array分配从1到8的不同数字。但是数组的元素必须是不同的。

Random random = new Random();
        JButton[] number = {jButton1,jButton2,jButton3,jButton4,jButton5,jButton6,jButton7,jButton8,jButton9};
    for(int i = 0; i<data.lentgh; i++)
    {
         number[i].setText(1+random.nextInt(9)+" ");
    }

使用此代码,数组的元素可以不同,有时某些元素可以相同。我搜索了互联网,但我无法找到。

我该如何解决这个问题?谢谢。

2 个答案:

答案 0 :(得分:0)

您可以在没有random()

的情况下执行此操作
for(int i = 0; i<data.lentgh; i++) // I think data should be replaced by number
    {
         number[i].setText((i+1)+"");
    }

random()不一定会生成不同的no。大多数时候你会得不到。这已经生成了。

答案 1 :(得分:0)

也许您可以使用LinkedHashSet存储随机数,然后您可以迭代该集并设置按钮的文本。

        Random random = new Random();
        JButton[] number = { jButton1, jButton2, jButton3, jButton4, jButton5,
                jButton6, jButton7, jButton8, jButton9 };
        Set<Integer> set = new LinkedHashSet<Integer>();
        while (set.size() != 9) {
            set.add(1+random.nextInt(9));
        }
        int i = 0;
        for (Integer s : set) {
            number[i].setText(s + " ");
            panel.add(number[i]);
            i++;
        }