1

我正在为一些课程制作一个剧院座位预订系统,但是在创建一个 JComboBox 来帮助用户从总共 197 个座位中选择一个座位时遇到了麻烦。

座位由“Seat”对象表示,这些对象只是一些变量的集合,例如“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);

所有帮助将不胜感激。

4

2 回答 2

6

您的 DefaultComboBoxModel 代码是正确答案。您只需从尽可能多的数组中添加元素。

我可以建议您使用两个 JComboBox 组件。一个用于分区,另一个用于座位号。否则,您的用户会在阅读数百个座位的列表时感到沮丧。

于 2013-03-26T17:56:45.883 回答
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);
    }
于 2013-03-26T18:03:45.173 回答