Я пытаюсь извлечь некоторые значения из базы данных MySQL в JComboBox
, используя ArrayList
и DefaultComboBoxModel
, чтобы избежать выборки повторяющихся значений.Поскольку JComboBox снова и снова заполняет одни и те же значения в JComboBox, когда я вызывал метод для извлечения значений.
В настоящее время, когда запускается следующий код, в поле со списком отображаются значения, подобные этим,
sometext @ 24084, sometext @ 716a1
Вот мой код,
public static void loadAll(JComboBox comboBox) {
try {
ArrayList<Combo> comboList = ComboBoxController.getComboType();
DefaultComboBoxModel dtm = (DefaultComboBoxModel)comboBox.getModel();
for (Combo combo : comboList) {
Object[] rowData = {combo.getComboType()};
dtm.addElement(rowData);
}
} catch (SQLException | ClassNotFoundException ex)
{
Logger.getLogger(AllComboBoxMethod.class.getName()).log(Level.SEVERE, null, ex);
}
}
И метод получения,
int itemCount = combo.getItemCount();
for(int i = 1; i < itemCount; i++) {
combo.removeItemAt(0);
}
String sql = "SELECT * FROM combo_type";
dbConnection = DbConnection.getInstance();
con = dbConnection.getConnection();
stm = con.createStatement();
rst = stm.executeQuery(sql);
ArrayList<Combo> comboList = new ArrayList();
while(rst.next()) {
comboList.add(new Combo(rst.getString(2)));
}
return comboList;
Так что яделать неправильно?Это единственный способ избежать выборки повторяющихся значений?Я пытался comboBox.removeAllItems()
ранее (до добавления этого кода), а затем получить значения.Но это дает мне NullPointerException
несколько раз.Так как я могу это исправить?