私はいくつかのコースワークのために劇場の座席予約システムを作成していますが、JComboBox を作成してユーザーが 197 のセットから座席を選択できるようにするのに問題があります。
座席は、「isBooked」(ブール値) などのいくつかの変数の単なるコレクションである「Seat」オブジェクトによって表されます。座席は複数の座席配列に配置され、各配列は座席の行を表します (例: A[]、B[]...
JComboBox に 1 つの配列を簡単に追加して正常に動作させることはできますが、JComboBox のリストにさらに配列を追加しようとすると失敗します。一度に 1 つずつ座席を追加できますが、これは明らかに非効率的です。
複数の配列を JComboBox に追加するにはどうすればよいですか? つまり、A[1]、A[2]、A[3]... A[14]、B[1]、B[2]...
これは現時点で私の JComboBox のコードです。私が見る限り、これは機能するはずです。なぜ機能しないのかわかりません。座席を表す文字列を返す toString() というメソッドが Seat クラスにあります。
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);
このコードの結果は次のとおりです。 http://pasteboard.co/1eej5Be1.png JComboBox には、各配列を表すランダム コード (名前は忘れました) がありますが、配列内の個々の座席を表すものは何もありません。合計で、JComboBox には 197 のエントリがあるはずです。
すべての助けに感謝します。
提案どおり、使用してみました
`allSeats = ArrayUtils.addAll(A, B, C, D, E, F, G, H, J, K, L);`
しかし、NetBeans はこれを次のように変更するように言いました
`allSeats = (Seat[]) ArrayUtils.addAll(A, B, C, D, E, F, G, H, J, K, L);`
その後、NetBeans はすべて問題ないと言いましたが、プログラムを実行しようとするとすぐに、次の例外が発生しました。
スレッド「メイン」の BlException java.lang.IllegalArgumentException: 予約システム.メイン (BookingsSystem. java:267) 原因: java.lang.ArrayStoreException at java.lang.System.arraycopy(Native Method) at org.apache.commons.lang3.ArrayUtils.addAll(ArrayUtils.java:3459) ... 1 more Java Result : 1
267行目は上の行です