这就是事情:
我创建了一个鸡尾酒吧'软件,我有以下几个类:
现在:在Cocktail
中添加新的CreateNewCPanel
时,我会将鸡尾酒添加到CocktailBar
课程的列表中。
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类中有一个getter,我已经尝试过了:
cChoose.addItem(CocktailBar.getCocktails());
在ShowAllCPanel的comboBox中,但它不会在下拉列表中显示任何内容。
感谢@Do Re,我插入了这个:
//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);
}
但仍然 - 运行时,下拉列表保持为空。
答案 0 :(得分:0)
正如你在评论中提到的那样,你为鸡尾酒创造了一个吸气剂。
尝试这样的事情
for (Coctail c : CocktailBar.getCocktails())
cChoose.addItem(c);
这会迭代鸡尾酒列表并单独添加每个项目,而不是一次添加鸡尾酒列表。
修改强>
试
cDropDownBox.revalidate();
cDropDownBox.repaint();
或
cChoose.revalidate();
cChoose.repaint();