簡體   English   中英

如何將多個數組添加到JComboBox?

[英]How can I add multiple arrays to a 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);

所有幫助將不勝感激。

您的DefaultComboBoxModel代碼是正確的答案。 您只需添加盡可能多的數組中的元素即可。

我可以建議您使用兩個JComboBox組件。 一個用於該部分,另一個用於座位號。 否則,您的用戶在閱讀數百個座位列表時會感到沮喪。

您可以使用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);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM