我需要为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)+" ");
}
使用此代码,数组的元素可以不同,有时某些元素可以相同。我搜索了互联网,但我无法找到。
我该如何解决这个问题?谢谢。
答案 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++;
}