在TABLE MODEL中同时维护这一列的两部分值:ID号,和对应的名称(来自另外一个表),显示时使用自定义的TABLE CellRenderer,,只显示名称,更新时使用ID号更新.

解决方案 »

  1.   

    附加给你一个例子,userObject用来维护名称,DATA用来维护ID号/**
     *定义表格模型
     */
    class AMSArchivesAddCustomModel extends DefaultTableModel
    {
      Vector userObject=new Vector();
      public AMSArchivesAddCustomModel(Vector data,Vector columnNames)
      {
        super(data,columnNames);
      }
      public Vector getUserObject()
      {
         return userObject;
      }
      public void setUserObject(Vector v)
      {
         userObject=v;
      }
      public void addUserObject(boolean b)
      {
         userObject.addElement(new Boolean(b));
      }
      public void removeAllFromUserObject()
      {
         userObject.removeAllElements();
      }
      public Class getColumnClass(int col)
      {
        Vector v=(Vector) dataVector.elementAt(0);
        return v.elementAt(col).getClass();
      }
      public boolean isCellEditable(int row,int col)
      {
        Class columnClass=getColumnClass(col);
        return columnClass!=Integer.class &&columnClass!=String.class;
      }
    }
      

  2.   

    应该用组合的Select语句得到全部的列,包括另一个表的,提交时从表中读列数据写到数据库中