我想从数据库ID添加组合框索引.public static void selectCompany(javax.swing.JComboBox cmbCategory ){cmbCategory.removeAllItems();String sql=SELECT * FROM company_details;try{Connection conn=dbConnecti...
我想从数据库ID添加组合框索引.
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);
}
}
cmbCategory是组合框对象.我想将组合框索引和组合框列表显示为类别名称.数据库是mysql.
解决方法:
您可以将对象添加到ComboBox,而不仅仅是字符串,所以这样的事情应该可以解决问题:
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指出的那样,你可以通过使用ListCellRenderer告诉swing如何渲染这个元素:
class MyListRenderer extends JLabel implements ListCellRenderer {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
Object[] itemData = (Object[])value;
setText((String)itemData[1]);
return this;
}
}
您可以稍后分配给JComboBox:
cmbCategory.setRenderer(new MyListRenderer());
通过这样做,您具有在一个对象中同时具有ID和类别名称的明显优势,因此当用户选择组合框中的项目时,您可以访问此对象的所有属性(ID和名称!).
编程基础网
本文标题为:如何在java中将数据库ID添加为组合框索引?
基础教程推荐
猜你喜欢
- SpringBoot+hutool实现图片验证码 2023-04-16
- Java实战员工绩效管理系统的实现流程 2023-08-10
- Springboot启动原理详细讲解 2023-03-06
- Spring获取当前类在容器中的beanname实现思路 2023-02-18
- Java打印数组的三种方法整理 2023-01-18
- Spring JdbcTemplate执行数据库操作详解 2023-06-17
- 关于SpringMVC在Controller层方法的参数解析详解 2023-08-07
- Swagger及knife4j的基本使用详解 2023-04-22
- 详解Spring Bean的配置方式与实例化 2022-12-27
- 如何将JSON字符串数组转对象集合 2023-01-09
