如何将多个数组添加到JComboBox?

时间:2013-03-26 17:52:07

标签: java arrays swing jcombobox

我正在制作一个剧场座位预订系统用于某些课程作业,但是我在制作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);

所有帮助将不胜感激。

2 个答案:

答案 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);
    }