在java中的combobox上添加项目运行时
我在Swing中创建了一个组合框,我想在另一个函数中添加项目。但问题是,调用该函数后,项目不会显示:在java中的combobox上添加项目运行时,java,swing,user-controls,awt,jcombobox,Java,Swing,User Controls,Awt,Jcombobox,我在Swing中创建了一个组合框,我想在另一个函数中添加项目。但问题是,调用该函数后,项目不会显示: public void addItems() { combo.addItem(""); // i want to add items here when this function is being called // but those items are not displaying after calling this function // i m cal
public void addItems()
{
combo.addItem("");
// i want to add items here when this function is being called
// but those items are not displaying after calling this function
// i m calling this function on button click
}
在以下方面对我有效:
在以下方面对我有效:
如果combobox具有
可变ComboboxModel
,则可以执行以下操作
MutableComboBoxModel model = (MutableComboBoxModel)combo.getModel();
model.addElement( elementToAdd );
这相当于调用JComboBox#addItem
(参见下面的实现):
但是我认为,如果您想在模型端进行更改,而不是浏览视图(除了向用户提供在视图中编辑的能力),那么直接修改模型是一种最佳做法。如果您的组合框具有
可变组合框模型
,则可以执行以下操作
MutableComboBoxModel model = (MutableComboBoxModel)combo.getModel();
model.addElement( elementToAdd );
这相当于调用JComboBox#addItem
(参见下面的实现):
但我认为,如果您希望在模型端进行更改,而不是浏览视图(为用户提供在视图中编辑的功能除外),则直接修改模型是最佳做法。您需要调用:
repaint();
validate();
您需要调用:
repaint();
validate();
不要将
项目
直接添加到JComboBox
,将一个新的项目
添加到ComboxModel
我可以根据您的陈述想出至少3个问题。想选择并问1个问题吗?不要直接将项目添加到JComboBox
,将新的项目添加到ComboBoxModel
我可以根据您的陈述想出至少3个问题。是否愿意选择并问1个问题?不是,您错了(重新)验证和重新绘制是为了在运行时添加、删除(添加和删除)或修改JComponents,这些方法是为了LayoutManager,而不是为了在运行时向JComboBox添加新项,请删除或修改此问题不是,您错了(重新)验证和重新绘制是为了添加、删除(添加和删除)或在运行时修改JComponents,这些方法用于LayoutManager,而不是在运行时向JComboBox添加新项,请删除或修改此问题