【发布时间】:2013-03-29 11:58:09
【问题描述】:
我正在为一些课程制作一个剧院座位预订系统,但在创建一个 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 然后说一切都很好,但是当我尝试运行程序时,我得到了这个异常:
线程“主”java.lang.IllegalArgumentException 中的 BlException: 无法将 java.lang.Object 存储在 Seat 的数组中 org.apache.commons.lang3.ArrayUtils.addAll(ArrayUtils.java:3469) 在 BookingsSystem.main(BookingsSystem.java:267) 原因: java.lang.System.arraycopy 处的 java.lang.ArrayStoreException(本机 方法)在 org.apache.commons.lang3.ArrayUtils.addAll(ArrayUtils.java:3459) ... 还有 1 个 Java 结果:1
第 267 行是上面的行
【问题讨论】:
-
@joeyrohan OP 想要将多个数组的内容添加到组合框
-
@Apurv 我认为问题已得到解答:stackoverflow.com/questions/15644063/…
-
@joeyrohan 重复!!!
-
A、B等和allSeats的类型是什么?
标签: java arrays swing user-interface jcombobox