我正在为一些课程制作一个剧院座位预订系统,但是在创建一个 JComboBox 来帮助用户从总共 197 个座位中选择一个座位时遇到了麻烦。
座位由“Seat”对象表示,这些对象只是一些变量的集合,例如“isBooked”(布尔值)。座位排列成多个座位数组,每个数组代表一排座位,例如A[]、B[]...
我可以轻松地将单个数组添加到 JComboBox 并使其正常工作,但是尝试将更多数组添加到 JComboBox 中的列表失败。我可以一次添加一个座位,但这显然效率低下。
如何向 JComboBox 添加多个数组?即A[1]、A[2]、A[3]...A[14]、B[1]、B[2]...
这是目前我的 JComboBox 的代码,据我所知,这应该可以工作 - 我无法弄清楚为什么它不是。我在 Seat 类中有一个名为 toString() 的方法,它返回代表座位的字符串。
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 然后说一切都很好,但是当我尝试运行程序时,我得到了这个异常:
线程“main”中的 BlException java.lang.IllegalArgumentException:无法将 java.lang.Object 存储在 BookingsSystem.main(BookingsSystem. java:267) 由: java.lang.ArrayStoreException at java.lang.System.arraycopy(Native Method) at org.apache.commons.lang3.ArrayUtils.addAll(ArrayUtils.java:3459) ... 1 个 Java 结果: 1
第 267 行是上面的行