jComboBox显示内容和id问题,相信好多人都会碰到的问题

lionzhf 2006-01-05 02:57:18
如何获取jComboBox显示内容的id
我想使用一个JComboBox控件,在JComboBox中显示的可选项来自某个表的一个字段(比如称之为field_caption),我希望通过JComboBox选择而获取表中同记录相应的另一个字段值(比如称之为field_id)。
...全文
215 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lionzhf 2006-01-06
  • 打赏
  • 举报
回复
自己定一下
zjg_robin 2006-01-06
  • 打赏
  • 举报
回复
定义一个JavaBean
public class Item{
private String id;
private String caption;

public Item(){};
public Item(String id, String caption){
this.id = id;
this.caption = caption;
}

public void setId(String id){
this.id = id;
}

public void setCaption(String caption){
this.caption = caption;
}

public String getId(){
return id;
}

public String getCaption(){
return caption;
}

public String toString(){
return caption;
}
}

然后调用:
JCoboBox的addItem(new Item("id1", "robin"));

类似的就可以了。

lzmailcn 2006-01-06
  • 打赏
  • 举报
回复

public class Bean{
//在组合框中显示的内容
private String title;

//数据库中各字段的值
private String id;
private String name;

public Bean(){
}

public Bean(String title,String id,String name){
this.title=title;
this.id=id;
this.name=name;
}

public String getTitle(){
return this.title;
}

public void setTitle(String title){
this.title=title;
}

public String getId(){
return this.id;
}

public void setId(String id){
this.id=id;
}

public String getName(){
return this.name;
}

public void setName(String name){
this.name=name;
}

//不能少
public String toString(){
return this.title;
}

public Object clone(){
try {
Bean b = (Bean) super.clone();

b.setTitle(this.getTitle());
b.setId(this.getId());
b.setName(this.getName());

return b;
} catch (CloneNotSupportedException ce) {

ce.printStackTrace();

return null;
}
}
}




import java.util.ArrayList;

public class BeanManager{
//数据保存所有记录
private static ArrayList<Bean> list=new ArrayList<Bean>();

static{
readData();
}
//禁止实例化
private BeanManager(){}

public static void readData(){
/*
*从数据库读取数据填到list中
*/

//一些假bean
list.add(new Bean("A","A01","第一个值"));
list.add(new Bean("B","A02","第二个值"));
list.add(new Bean("C","A03","第三个值"));
list.add(new Bean("D","A04","第四个值"));
}

public static ArrayList<Bean> getAllData(){
return list;
}
}




import javax.swing.*;

public class Use{

public static void main(String[] args){

//填数据
javax.swing.DefaultListModel listModel=new javax.swing.DefaultListModel();
ArrayList<Bean> list=BeanManager.getAllData();
for(Bean item : list){
listModel.addElement((Bean)item.clone());
}

JTextField jfId=new JTextField();
JTextField jfName=new JTextField();
JComboBox jcom=new JComboBox(listModel);
jListCity.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent e) {
Bean bean=(Bean)jcom.getSelectedItem();

jfId.setText(bean.getId());
jfName.setText(bean.getName());
}
});


JFrame jd=new JFrame("Test");
jd.getContentPane().add(jcom);

jd.setSize(200,200);
jd.pack();
jd.setVisible(true);
}
}
mlyb 2006-01-06
  • 打赏
  • 举报
回复
可以的,不过具体点。
lionzhf 2006-01-06
  • 打赏
  • 举报
回复
zaiding

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧