我正在制作一个剧场座位预订系统用于某些课程作业,但是我在制作JComboBox时遇到了麻烦,以帮助用户从197年的一套座位中选择一个座位。
席位由“席位”对象表示,这些对象只是一些变量的集合,例如“isBooked”(布尔)。座椅布置成多个座椅阵列,每个阵列代表一排座椅,例如A [],B [] ......
对于座位的预订,由于价格不同,座位分开是必要的,但是JComboBox将用作选择座位以取消预订的方式,因此只需要完整的座位列表。
我可以轻松地将单个数组添加到JComboBox并使其正常工作但尝试将更多数组添加到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);
所有帮助将不胜感激。
答案 0 :(得分:6)
您的DefaultComboBoxModel代码是正确的答案。您只需添加尽可能多的数组中的元素。
我建议您使用两个JComboBox组件。一个用于该部分,另一个用于座位号。否则,您的用户会因为阅读数百个席位而感到沮丧。
答案 1 :(得分: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);
}