gpt4 book ai didi

java - 使用表值填充组合框

转载 作者:行者123 更新时间:2023-11-29 08:55:58 24 4
gpt4 key购买 nike

编辑(新):

仍然没有弄清楚如何填充 cboxCustomers 。过去一两天我一直在做这件事,但运气不佳。

如果有人可以提供帮助:http://pastebin.com/e5wibRYw

我来自catscustomers , 顺便提一句。

我试过Mr. Xymon's方法,但没有正确实现它,因为它不起作用。

无论我用什么事件来处理我总是得到的人口 NullPointerException对于我尝试使用的任何控件/事件。

旧版:

有一个 JForm 。其上有一个组合框。还有一张有猫的单 table - cats 。每只猫都有 id ,和 catName

我想做的是,当我单击组合框时,从而展开它,并用所有 id 填充它。在 cats中找到的猫表。

深爱。回答如下。不幸的是我收到了很多 unreported exception java.sql.SQLException从我用 > 指示的行中:

private void cboxCatsMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
// create an array list to be filled with cat's ids
ArrayList<String> cats = new ArrayList<String>();
String query = "SELECT id FROM cats ORDER BY id";
>java.sql.PreparedStatement stm = connection.prepareStatement(query);

>ResultSet rs = stm.executeQuery(query);

>while(rs.next()){
>String cat = rs.getString("id");
// add cat's ids tp the array list
cats.add(cat);
}

>rs.close();

// populate the combo box
DefaultComboBoxModel model = new DefaultComboBoxModel(cats.toArray());
cboxCats.setModel(model);
}

旧答案:

我想我已经修复了它。我只需要把所有突出显示的代码行包装成一个大的 try-catch会捕获 SQLException 的语句。问题是 - 组合框没有填充 id当我扩展它时的值。这是为什么?我使用了错误的事件吗?

最佳答案

用猫的名字而不是 id 填充组合框不是更好吗?我想出了一个不同的解决方案,直接将字段值添加到模型中,而不是使用 ArrayList。您必须在构造函数中执行它才能在加载表单时填充组合框。

DefaultComboBoxModel list = new DefaultComboBoxModel();
JComboBox cbo_cats = new JComboBox(list);


// at constructor or a user-defined method that's called from constructor
try{
// assume that all objects were all properly defined
s = con.createStatement();
s.executeQuery("SELECT * FROM cats ORDER BY catName");
rs = s.getResultSet();
while(rs.next()){
//int id = rs.getInt("id");
//list.addElement(id);

String c = rs.getString("catName");
list.addElement(c);
}
}catch(Exception err){
System.out.println(err);
}

如您所见,我没有使用准备好的语句,但您可以轻松更改它。

关于java - 使用表值填充组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9985711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com