首先明白jTable的单元格cell的数据保存在model中,显示是由他的TableCellRenderer负责,如果你不设置的话,默认的是DefaultTableCellRenderer的实例,它扩展自JLable,也就是说默认的cell的显示方式是一个JLable,(他把model中对应的该单元的数据toString到一个String,然后在JLabel显示).
同样的,cell的编辑器是由TablecellEditor来负责.你可以让cell显示的时候看起来仍然像个lable,而一旦鼠标点击进行编辑的时候安装一个下拉框,那么你只需要自己设计一个TableCellEditor,实现他的
getTableCellEditorComponent方法,就可以了.强烈建议看
java2 图形设计卷II:Swing技术
书中讲的很好,而且有例子.

解决方案 »

  1.   

    我看了有编辑整个column的,但是我只想要把其中一个cell变成combobox,请问有例子吗?谢谢
      

  2.   

    这本书又没有下载我还不太清楚,我看的是paper版的.
    另外,仅仅设置某一个cell也是完全可以的.可以有不同的办法:
    1.在你自己的TableCellEditor的类的
    getTableCellEditorComponent()方法中,可以根据行和列的值来返回不同的component作为编辑器.就是在该方法中,判断条件,分情况返回值.
    2.另外一种是,你自己实例化一个TableCellEditor的实例(不用第一种方法),然后
    调用jTable.prepareEditor(TableCellEditor,int,int)方法.