如何在java中添加数据库id作为组合框索引?
我想从数据库id添加组合框索引如何在java中添加数据库id作为组合框索引?,java,mysql,swing,jcombobox,Java,Mysql,Swing,Jcombobox,我想从数据库id添加组合框索引 public static void selectCompany(javax.swing.JComboBox cmbCategory ){ cmbCategory.removeAllItems(); String sql="SELECT * FROM company_details"; try{ Connection conn=dbConnection(); PreparedStatement pstmt=
public static void selectCompany(javax.swing.JComboBox cmbCategory ){
cmbCategory.removeAllItems();
String sql="SELECT * FROM company_details";
try{
Connection conn=dbConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery(sql);
while(rs.next()){
int id=rs.getInt("company_id");
String category=rs.getString("company_name");
cmbCategory.addItem(id);
cmbCategory.addItem(category);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
CMB类别是组合框对象。我想将id显示为组合框索引,组合框列表显示为类别名称。数据库是mysql。如果您想将公司id设置为
组合框
项目索引,那么我的答案是您不能设置项目索引。如果要同时显示id和类别,请连接id和公司名称
cmbCategory.addItem(id + " " + category);
您可以向组合框中添加对象,而不仅仅是字符串,因此类似这样的操作应该可以做到:
while(rs.next()){
int id=rs.getInt("company_id");
String category=rs.getString("company_name");
Object[] itemData = new Object[] {id, category};
cmbCategory.addItem(itemData);
}
正如Harry Joy指出的,您可以通过使用
您可以稍后将其分配给JComboBox:
cmbCategory.setRenderer(new MyListRenderer());
这样做的明显优点是,ID和类别名称都位于一个对象中,因此当用户在组合框中选择一个项目时,您可以访问该对象的所有属性(ID和名称!).使用自定义渲染器时,您将无法通过键盘输入项目的第一个字符来访问组合框项目。这是因为combobox模型的搜索使用每个项的toString()方法来首先搜索请求的项。在本例中,数组的toString()实现不是meaningul
另一种解决方案是创建一个自定义对象并覆盖对象的toString()方法,如本例所示:我想删除所选项目,如果我需要项目的id,我该怎么做
cmbCategory.setRenderer(new MyListRenderer());