小弟运行程序报错了
java.lang.ClassCastException: java.lang.String cannot be cast to model.TbSpinfo
at internalFrame.XiaoShouDan.updateTable(XiaoShouDan.java:534)代码块:
  private final JComboBox sp = new JComboBox();
  sp.addItem(new TbKhinfo()); //初始化商品检索下拉选择框
    private void initSpPyBox() {
     TbSpinfo spinfo = new TbSpinfo();
....
            while (rs.next()) {
                       ....                                
                    sp.addItem(spinfo);
                    spPy.addItem(spinfo);
                }            }  }
  // 根据商品下拉框的选择,更新表格当前行的内容
    private synchronized void updateTable() {        TbSpinfo spinfo = new TbSpinfo() ;
        try{
            spinfo = (TbSpinfo) sp.getSelectedItem();(*这步出错)
        }catch(ClassCastException ex){
            ex.printStackTrace();
        }
.....
}

解决方案 »

  1.   

    错误提示很明显啊:
    sp.getSelectedItem()
    这个方法返回的是String,而你要转成TbSpinfo,自然不行。
      

  2.   

    getSelectedItem() 这个方法你返回的是TbSpinfo类型吗?
      

  3.   

    是的,我要求返回TbSpinfo类型...我加入的 sp.addItem(spinfo)也是这个类型!
      

  4.   


    getSelectedItem
    public Object getSelectedItem()返回当前所选项。 
    如果组合框可编辑,则可能尚未使用 addItem、insertItemAt 或数据构造方法将此值添加到组合框中。 这个是api中的说明  你看下  是不是 什么地方 编辑到combobox了  导致值没有进去
      

  5.   

    //初始化商品检索下拉选择框 
        private void initSpPyBox() { 
        TbSpinfo spinfo = new TbSpinfo(); 
    .... 
                while (rs.next()) { 
                          ....                                
                        sp.addItem(spinfo); 
                        spPy.addItem(spinfo); 
                    }             }   } 我加了啊