我想实现象web页上的select option 这样子的下拉框。现实的text和用来查询的value不同,在jcombobox上怎么实现阿。我看jcombobox上只能绑定string[]或者vector。这样子取得的都是text值。例如 下拉框显示 一月份,二月份,三月份。实际用来查询的是1,2,3。请问用jcombobox可以实现么???

解决方案 »

  1.   

    Jcombobox以Vector构造时
    是可以使用对象的。你可以自己建一个对象
    然后把它放在Vector中比如
    Class Month{
    private String name = "";
    private int value = 0;
    public Month(){
    }
    public ...setXXX(...)
    public ...getXXX(...)public String toString(){
    return this.name;
    }
    }
    }
      

  2.   

    放在vector 中也无法实现value和text对应的功能吧,例如我的vector v=new vector(),v。add(“人员”)。现实的时候我怎么能得到这个人员就表示“person”呢?实现我要用person到数据库中检索的。
      

  3.   

    你的意思是我必须先建立一个value和text对应的对象是么? 如果是动态的呢?例如我想得到这个一个数据库中的所有表这个表是未知的。。
      

  4.   

    你可以建立Person对象,
    把Person对象加入到Vector中
    Vector就是一个Person的集合
      

  5.   

    还是不很清晰:
    例如我建立一个person对象
    public class person(){ String id,String name}
     vector.add(person=new Person()).
    在把vector绑定到Jcombobox上。
    这时候在下拉框中显示的到底是person的哪个阿?
    还是应该vector.add(person=new Person().getName())?
      

  6.   

    在这个例子中
    JComboBox会自动调用Object对象的toString()方法
    所以
    你要在Person中覆写toString()方法
    类似这样
    public String toString(){
    return this.name;
    }
      

  7.   

    哭死!!!直接说我的问题吧:还得麻烦您,您说的我明白。
    我要现实一个下拉框包含数据库中的 表名 选择表名后查询出该表的所有字段。
    其中 数据库包含的表从 select name,sid from sysobject 中获得。
    该表包含的字段要从另外的表中查询出来,根据得不是名字,而是sid select * frm table where sid='123232'
    这样子我的下拉列表该怎么初始。我怎么能通过name获得其对应的sid呢?(不包含在从数据库中查询一次的方法)
      

  8.   

    你应该至少有两个JComboBox
    假设第一个为数据库表列 我们给个名称tableComboBox
    第二个为字段表列 我们给各名称columnComboBox你建立两个对象
    Table对象和Column对象Table对象给tableComboBox用
    其中有name和sid两个属性 并有对应的get和set方法
    toString()就返回name在TableComboBox的事件中 你可以做如下处理:
    Table selectedTable = (Table)(tableComboBox.getSelectedItem());
    String sid = selectedTable.getSid();
    这样 就可以取到你需要的sid了
    你自己就可以做相应的处理了!
      

  9.   

    tableComboBox列表的初始
    你可以参照下面方法:JComboBox tableComboBox= new JComboBox();
    // getTables()方法你自己设计,返回Table的集合
    Vector tables = getTables();
    ComboBoxModel tablesModel = new DefaultComboBoxModel(tables);
    tableComboBox.setModel(tablesModel);