체크박스를 연습하기위해 만든 코드입니다.
제가 원하는것은 체크박스 순서를 랜덤으로 선택되게 하고 싶고,선택된 값이 중복된 값이 나오지 않도록 하고 싶은데요.
저렇게 코딩했더니 오류가 뜹니다.
중복 없이 체크박스에 단어들을 지정하게 하고 싶은데 확인 부탁드립니다.
```
import javax.swing.JCheckBox;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class CheckBox extends JFrame{
String [] names= {"북경","상해","하얼빈","쑤저우","쓰촨성","항저우","지린성","청도","산둥성"};
JCheckBox [] fruits=new JCheckBox[names.length];
CheckBox(){
ButtonGroup g=new ButtonGroup();
setTitle("체크박스 연습하기");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new FlowLayout());
Random rand=new Random();
String x[]=new String[names.length];
for(int j=0;j<names.length;j++) {
x[j]=names[rand.nextInt(names.length)];
if(x[j]==x[j+1]) j--;//오류 발생,문자열에서 같은 문자열이 선택되지 않도록 설계하고 싶습니다.
}
for(int i=0;i<fruits.length;i++) {
fruits[i]=new JCheckBox(x[i]);
g.add(fruits[i]);
c.add(fruits[i]);
}
setSize(250,200);
setVisible(true);
}
public static void main(String args[]) {
new CheckBox();
}
}
```
sehongpark님의 답변
## 답변
아래와 같은 방법으로 작성해보는건 어떨까요?
1. 배열을 섞는다.
2. 섞인 배열의 앞에서 임의의 몇 개를 차례로 뽑는다.