重复相同值集的 JavaFX 组合框

JavaFX combo box repeating the same value set

我使用组合框从 MySQL 数据库中检索数据。但是,当我将第一个值集插入数据库时​​,组合框值会重复。我想知道它为什么会发生以及如何避免它。我在 main 上调用了这个方法。谢谢

    public void FillCombo(){

    try{            
        String sql = "Select Name from Employee where Position='Driver'";
        pst = con.prepareStatement(sql);
        rs = pst.executeQuery();

        while(rs.next()){
            op.add(rs.getString("Name"));

        }
        selectDriverC.setItems(op);

        pst.close();
        rs.close();
    }
    catch(Exception e){
        System.out.println(e);
    }
}

添加一个条件来检查您要插入的字符串是否已经在 op 中, 我假设 op 类型是 ObservableList<String>。这应该有效:

public void FillCombo(){

    try{            
        String sql = "Select Name from Employee where Position='Driver'";
        pst = con.prepareStatement(sql);
        rs = pst.executeQuery();

        while(rs.next()){
            if(!op.contains(rs.getString("Name"))
            add(rs.getString("Name"));

        }
        selectDriverC.setItems(op);

        pst.close();
        rs.close();
    }
    catch(Exception e){
        System.out.println(e);
    }
}