1

私はいくつかのコースワークのために劇場の座席予約システムを作成していますが、JComboBox を作成してユーザーが 197 のセットから座席を選択できるようにするのに問題があります。

座席は、「isBooked」(ブール値) などのいくつかの変数の単なるコレクションである「Seat」オブジェクトによって表されます。座席は複数の座席配列に配置され、各配列は座席の行を表します (例: A[]、B[]...

座席を予約するには、価格が異なるため、列ごとに座席を区切る必要がありましたが、予約を取り消す座席を選択する方法として JComboBox が使用されるため、座席の完全なリストだけが必要です。

JComboBox に 1 つの配列を簡単に追加して正常に動作させることはできますが、JComboBox のリストにさらに配列を追加しようとすると失敗します。

複数の配列を JComboBox に追加するにはどうすればよいですか? つまり、A[1]、A[2]、A[3]... A[14]、B[1]、B[2]...

私はJavaの経験があまりないので、これがばかげた質問であれば申し訳ありません。過去数日間にわたって多くの調査を行った後、DefaultComboBoxModel クラスを試してみましたが、明らかに正しく使用されていません。これは私の問題を解決するための私の最近の試みでした:

DefaultComboBoxModel model = new DefaultComboBoxModel();
            model.addElement(A);
            model.addElement(B);
            model.addElement(C);
            model.addElement(D);
            model.addElement(E);
            model.addElement(F);
            model.addElement(G);
            model.addElement(H);
            model.addElement(J);
            model.addElement(K);
            model.addElement(L);
            JComboBox seatCombobox = new JComboBox();
            seatCombobox.setModel(model);
            unbookSeatWindow.buttonsPanel.add(seatCombobox);

すべての助けをいただければ幸いです。

4

2 に答える 2

6

あなたの DefaultComboBoxModel コードが正解です。配列の要素をいくつでも追加するだけです。

2 つの JComboBox コンポーネントを使用することをお勧めします。1 つはセクション用、もう 1 つは座席番号用です。そうしないと、ユーザーは何百ものシートのリストを読んでイライラすることになります。

于 2013-03-26T17:56:45.883 に答える
3

を使用して、次の方法でモデルを埋めることができますArrayList

    DefaultComboBoxModel model ;
    JComboBox seatCombobox = new JComboBox();
    public void fillModel()
    {
      ArrayList<String> elements = new ArrayList<String>();
      elements.addAll(java.util.Arrays.asList(A));
      elements.addAll(java.util.Arrays.asList(B));
      elements.addAll(java.util.Arrays.asList(C));
      elements.addAll(java.util.Arrays.asList(D));
      elements.addAll(java.util.Arrays.asList(E));
      elements.addAll(java.util.Arrays.asList(F));
      elements.addAll(java.util.Arrays.asList(G));
      elements.addAll(java.util.Arrays.asList(H));
      elements.addAll(java.util.Arrays.asList(I));
      elements.addAll(java.util.Arrays.asList(J));
      elements.addAll(java.util.Arrays.asList(K));
      elements.addAll(java.util.Arrays.asList(L));
      model = new DefaultComboBoxModel(elements.toArray()) ;
      seatCombobox.setModel(model);
    }
于 2013-03-26T18:03:45.173 に答える