我有一个介于1和16之间的非重复Shuffled列表和一个2D数组,我想要做的是将数字16分配给位置btn [3] [3],所有其他位置都可以有其他剩余列表值(1 - 15)
代码:
int c = 0;
int v = 0;
for (int i=0; i<4; i++) {
v=0;
for(int j=0; j<4; j++){
String number = Integer.toString(list.get(c));
c++;
if (i == 3 && j == 3){
JButton btnmix = new JButton();
btnBotonMix[i][j] = btnmix;
btnBotonMix[i][j].setBounds(70+90*(i%10),v+90*(i/10),90,90);
btnBotonMix[i][j].setText(number);
}
else{
JButton btnmix = new JButton();
btnBotonMix[i][j] = btnmix;
btnBotonMix[i][j].setBounds(70+90*(i%10),v+90*(i/10),90,90);
btnBotonMix[i][j].setText(number);
}
v = v + 90;
}
}
我正在寻找的是,总是在我的索引中分配数字btn [3] [3]
所以我想得到这个(数字16总是在[3] [3]中,所有其余的在随机位置):
[0][0] 15
[0][1] 11
[0][2] 14
[0][3] 5
[1][0] 12
[1][1] 3
[1][2] 8
[1][3] 9
[2][0] 6
[2][1] 2
[2][2] 13
[2][3] 1
[3][0] 4
[3][1] 7
[3][2] 10
[3][3] 16
答案 0 :(得分:1)
PropertyChangeListener
答案 1 :(得分:0)
请尝试这个让我知道 -
int c = 0;
int v = 0;
Arrays.sort(list);//added
for (int i=0; i<4; i++) {
v=0;
for(int j=0; j<4; j++){
String number = Integer.toString(list.get(c)); //Changed
c++;
if (i == 3 && j == 3){
JButton btnmix = new JButton();
btnBotonMix[i][j] = btnmix;
btnBotonMix[i][j].setBounds(70+90*(i%10),v+90*(i/10),90,90);
btnBotonMix[i][j].setText(number);
}
else{
JButton btnmix = new JButton();
btnBotonMix[i][j] = btnmix;
btnBotonMix[i][j].setBounds(70+90*(i%10),v+90*(i/10),90,90);
btnBotonMix[i][j].setText(number);
}
v = v + 90;
}
}
我认为现在你不需要了。
答案 2 :(得分:0)
最简单的方法是在到达位置时检查检索到的数字是否为16 [3] [3]
int c = 0;
for (int i=0; i<a.length; i++) {
for(int j=0; j<a.length; j++){
String number = list.get(c);
c++;
JButton btnmix = new JButton();
btnBotonMix[i][j] = btnmix;
btnBotonMix[i][j].setBounds(70+90*(i%10),v+90*(i/10),90,90);
if (i == 3 && j == 3){
if(number.equals("16")){
btnBotonMix[i][j].setText(number);
}
}
else{
btnBotonMix[i][j].setText(number);
}
}
}