1

発信者として機能するボタンがあるビンゴ ゲームがあります。ボタンをクリックするたびに、1 から 75 までのランダムな数字が必要です。重複を排除しようとする次のコードがありますが、ここから先に進む方法がわかりません。次回ボタンをクリックするときのために、基本的に ArrayList から番号を削除する必要があります。

private JButton c; {
    c = new JButton("Call");
    c.addActionListener(
        new ActionListener() {
         public void actionPerformed(ActionEvent e) {
             List<Integer> list = new ArrayList<Integer>();
                for(int i = 1; i <= 75; i++){
                    list.add(i);
                }

                Collections.shuffle(list);
4

2 に答える 2

4

Arraylist の代わりに LinkedList を使用し、それをコンストラクターに入力してから、LinkedList にすべての作業を任せます。何かのようなもの:

public class Bingo extends JPanel{
  private static final long serialVersionUID = -5791572059409665801L;
  private LinkedList<Integer> list = new LinkedList<Integer>();
  private JButton c = new JButton("Call");

  public Bingo(){
    for(int ii=1; ii<= 75; ii++)
      list.add(ii);
    Collections.shuffle(list);

    c.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e){
        System.out.println(list.poll());
      }
    });

    add(c);
  }

  private static void createAndShowGUI() {
    JFrame frame = new JFrame("ButtonDemo");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    Bingo bingoClass = new Bingo();
    bingoClass.setOpaque(true);
    frame.setContentPane(bingoClass);

    frame.pack();
    frame.setVisible(true);
  }

  public static void main(String... args){
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        createAndShowGUI();
      }
    });
  }
}
于 2013-10-22T20:47:55.830 に答える
0

削除する要素のインデックスを見つけます:

int indexToRemove = list.indexOf(numberToRemove);

次に、リスト内のそのインデックスにあるオブジェクトを削除します

list.remove(indexToRemove); 
于 2013-10-22T20:46:41.150 に答える