在JComboBox中检查重复项目并删除它们的最佳方法是什么?在我所研究过的任何地方,Java都没有真正回答这个问题。基本上,当我使用观察者模式刷新我的JComboBox时,它会在更新时复制项目。我已经尝试了删除所有项目并将其重新放入的路线,但这会在修改项目信息时导致问题(需要很长时间才能完整解释)。
public void setCustomers()
{
for (Customer curr : Main.getNewCustomerList().getCustomers())
{
customerCombo.addItem(curr);
}
}
public void setDetails()
{
Customer selected = (Customer) customerCombo.getSelectedItem();
if(selected != null)
{
forenameText.setText(selected.getForename());
surnameText.setText(selected.getSurname());
costperkgText.setText(String.valueOf(selected.getDeliveryCost()));
line1Text.setText(String.valueOf(selected.getColAddress().getAddressLine1()));
line2Text.setText(String.valueOf(selected.getColAddress().getAddressLine2()));
cityText.setText(String.valueOf(selected.getColAddress().getCity()));
postcodeText.setText(String.valueOf(selected.getColAddress().getPostcode()));
}
else
{
ClearText();
}
}
public void ammendDetails()
{
Customer selected = (Customer) customerCombo.getSelectedItem();
if(selected != null)
{
selected.setForename(forenameText.getText());
selected.setSurname(surnameText.getText());
System.out.print(costperkgText.getText());
selected.setDeliveryCost(Double.valueOf(costperkgText.getText()));
Address newAddress = new Address(line1Text.getText(), line2Text.getText(), cityText.getText(), postcodeText.getText());
selected.setColAddress(newAddress);
}
else
{
ClearText();
}
}
public void ClearText()
{
forenameText.setText("");
surnameText.setText("");
costperkgText.setText("");
line1Text.setText("");
line2Text.setText("");
cityText.setText("");
postcodeText.setText("");
}
@Override
public void update()
{
setCustomers();
}
答案 0 :(得分:2)
试试这个
public void setCustomers(){
customerCombo.removeAllItems();
for (Customer curr : Main.getNewCustomerList().getCustomers()){
customerCombo.addItem(curr);
}
}