首先明白jTable的单元格cell的数据保存在model中,显示是由他的TableCellRenderer负责,如果你不设置的话,默认的是DefaultTableCellRenderer的实例,它扩展自JLable,也就是说默认的cell的显示方式是一个JLable,(他把model中对应的该单元的数据toString到一个String,然后在JLabel显示).
同样的,cell的编辑器是由TablecellEditor来负责.你可以让cell显示的时候看起来仍然像个lable,而一旦鼠标点击进行编辑的时候安装一个下拉框,那么你只需要自己设计一个TableCellEditor,实现他的
getTableCellEditorComponent方法,就可以了.强烈建议看
java2 图形设计卷II:Swing技术
书中讲的很好,而且有例子.
同样的,cell的编辑器是由TablecellEditor来负责.你可以让cell显示的时候看起来仍然像个lable,而一旦鼠标点击进行编辑的时候安装一个下拉框,那么你只需要自己设计一个TableCellEditor,实现他的
getTableCellEditorComponent方法,就可以了.强烈建议看
java2 图形设计卷II:Swing技术
书中讲的很好,而且有例子.
解决方案 »
- frameset框架取出来的 怎么都是空白?
- JTable中如何设定某一指定的单元格为编辑状态
- 如何让1000000(BigDecimal数据类型)格式化为1.000.1000(BigDecimal数据类型)
- 以下代码怎么执行不了.
- 菜鸟问题,有关JOptionPane.showInputDialog
- 关于URL的问题?
- 我的jdk配置有问题吗?为什么提示总是‘javac’不是内部或外部命令,也不是可运行的程序或批处理文件
- java编译运行问题
- 请问jbuilder5里在那可以配置数据库连接池?
- 比特币 java 报错java.net.SocketException: Unexpected end of file from server
- 请教高手,如何在一个string 中加入硬回车
- 有个模式对话框,如何象VC那样向其发送一个消息,就可模拟用户单击了“确定”按钮
另外,仅仅设置某一个cell也是完全可以的.可以有不同的办法:
1.在你自己的TableCellEditor的类的
getTableCellEditorComponent()方法中,可以根据行和列的值来返回不同的component作为编辑器.就是在该方法中,判断条件,分情况返回值.
2.另外一种是,你自己实例化一个TableCellEditor的实例(不用第一种方法),然后
调用jTable.prepareEditor(TableCellEditor,int,int)方法.