java - 删除重复的项目 JComboBox

标签 java swing combobox duplicates observer-pattern

检查 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();
}

最佳答案

试试这个

  public void setCustomers(){

        customerCombo.removeAllItems();

        for (Customer curr : Main.getNewCustomerList().getCustomers()){

                 customerCombo.addItem(curr);

        }


    }

关于java - 删除重复的项目 JComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27347189/

相关文章:

java - WELD-000072 声明钝化范围的托管 bean 必须具有钝化能力

java - 打印二叉树中没有兄弟节点的所有节点?

Java 数据库添加到我删除的行?

java - 从按钮单击事件打开另一个 JFrame

Python 3.x tkinter 组合框同步 ['variables' ]

java - 准备好发布 Java 程序

java - JComboBox 恢复为 JTable 中的原始值

java - Swing 部件困难

python - 为 ttk 组合框设置默认值

wpf - 组合框中的整数不会数据绑定(bind)