【问题标题】:How to add more than one element into ComboBox in Java如何在 Java 中将多个元素添加到 ComboBox 中
【发布时间】:2016-05-20 10:54:11
【问题描述】:

我有一个名为“kierowca”的表,其中包含名为“imie”和“nazwisko”的列。在我的应用程序中,我想向组合框中添加一些项目,例如“imie nazwisko”。这就是我的组合框的定义方式:

public DefaultComboBoxModel kierowcaCbModel = new DefaultComboBoxModel();
JComboBox kierowcaCb = new JComboBox(kierowcaCbModel);

这是我从数据库中获取“imie”和“nazwisko”的方法:

public static String getKierowcaImieNazwisko(int id) {
    String imieNazwisko = "";
    try {
        ResultSet result = stmt.executeQuery("SELECT imie, nazwisko FROM kierowca WHERE id_kierowca="+id+";");
        while(result.next()) {
            imieNazwisko = result.getString("imie") + " " + result.getString("nazwisko");
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return imieNazwisko;
}

这就是我尝试在组合框中添加更多元素的方式:

try {
    ResultSet result = baza.stmt.executeQuery("SELECT id_kierowca FROM kierowca;");
    while(result.next()) {
        view.kierowcaCbModel.addElement(baza.getKierowcaImieNazwisko(result.getInt("id_kierowca")));
    }
} catch(Exception ex) {
    ex.printStackTrace();
}

问题是我的最终组合框只有“kierowca”表中的第一行。如何解决?

编辑: 更重要的是,我可以像view.kierowcaCb.addElement("Hallo"); 一样手动将新项目添加到comoBox 中,并且它在我的最终组合框中可见

【问题讨论】:

    标签: java sqlite combobox


    【解决方案1】:

    由于您是在 Jframe 中初始化模型后修改模型,因此您需要重新绘制秋千。

    试试

    SwingUtilities.updateComponentTreeUI(frame);
    

    如果还是不行,那么在完成上述步骤后尝试

    frame.invalidate();
    frame.validate();
    frame.repaint();
    

    如果重绘不起作用,那么按照文档:

    • 您必须将ComboBoxModel 添加到JComboBox
    • 那里可以add / remove / modify的值,

    • 在 API 中实现的事件刷新您的视图 (JComboBox) 没有更多的代码行

    • 所有更新都必须在Event Dispatch Thread上完成

    【讨论】:

    • 这并没有解决我的问题。更重要的是,我可以像 view.kierowcaCb.addElement("Hallo"); 一样手动将新项目添加到comoBox中。它在我的最终组合框中可见
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 2015-03-07
    • 1970-01-01
    相关资源
    最近更新 更多