2016-05-27 12 views
0

這裏的東西:的Java:獲取列表<>從一個類項目到JComboBox的另一個類

我創建了一個「cocktailbar」軟件,我有以下類:

  • 雞尾酒,
  • CocktailBar,
  • CreateNewCPanel,
  • HelloPanel,
  • SearchCPanel,
  • ShowAllCPanel,
  • CocktailMixerGUI,
  • 成分。

現在:當CreateNewCPanel添加新Cocktail,我雞尾酒添加到在CocktailBar類的List。

Box buttonBox = Box.createHorizontalBox(); 
JButton speicherButton = new JButton("Speichern"); 
speicherButton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e){ 
     neuerC.setCName(cName.getText()); 
     neuerC.fuegeZubereitungHinzu(zubereitungTextArea.getText()); 
     CocktailBar.addCocktail(neuerC); 

現在我需要看到在ShowAllCPanel一個「下拉」菜單中的所有創意雞尾酒。我有以下情況:

//Adding the DropDown Menu, first a Box, then a ComboBox inside. 
Box cDropDownBox = Box.createHorizontalBox(); 
cDropDownBox.add(Box.createHorizontalGlue()); 

JComboBox cChoose = new JComboBox(); 
groesseEinsetzen(cChoose, 500, 20); 

cChoose.setAlignmentX(SwingConstants.LEFT); 
cDropDownBox.add(cChoose); 

但現在我想知道我怎麼得到我的名單從CocktailBar類到ShowAllCPanel

編輯:忘了提:我在CocktailBar類消氣,我已經嘗試過:

 cChoose.addItem(CocktailBar.getCocktails()); 

在ShowAllCPanel下拉框中內,但它不顯示在下拉任何東西。

感謝@Do回覆,我插入這樣的:

//Adding the DropDown Menu, first a Box, then a ComboBox inside. 
    Box cDropDownBox = Box.createHorizontalBox(); 
    cDropDownBox.add(Box.createHorizontalGlue()); 

    JComboBox cChoose = new JComboBox(); 

    if (CocktailBar.getCocktails() != null){ 

     for (Cocktail c : CocktailBar.getCocktails()) 
      cChoose.addItem(c); 
    } 

但仍 - 在運行時,下拉列表保持爲空。

+1

有你試過createing一個'getter'for名單? –

+0

是的,我忘了提及...我試過: cChoose.addItem(CocktailBar。getCocktails()); 但它似乎不工作 –

+1

getCocktails()返回什麼?錯誤是什麼? –

回答

0

正如你在評論中提到的那樣,你爲雞尾酒創造了一個getter。

嘗試這樣的事情

for (Coctail c : CocktailBar.getCocktails()) 
    cChoose.addItem(c); 

這個迭代雞尾酒的列表,並將每個項目seperately而不是一下子增加雞尾酒的列表。

編輯

嘗試

cDropDownBox.revalidate(); 
cDropDownBox.repaint(); 

cChoose.revalidate(); 
cChoose.repaint(); 
+0

我應該在哪裏放?我在將Dropdownbox添加到標籤之前嘗試了它,但沒有任何效果 –

相關問題