![]() |
1
-8
最简单的方法是实现自己的 TableModel
把这个载入你的jtable。如果尚未替换布尔值的默认单元格呈现器,则由于getColumnClass()的实现,所有单元格都将呈现为复选框。这些复选框的所有用户输入都是用setValueat()收集的。 |
![]() |
2
9
用此代码扩展jtable:
这将为您获得A值的每个组合框创建一个唯一的JComboBox单元编辑器。 |
![]() |
3
2
您需要覆盖:
…在TableCellEditor中。传递给此方法的值是可以放入JComboBox中的值。这意味着该特定单元格的“值”必须是可以转换为集合的值。它可能只是一个对象列表,也可能是一个包含字段的POJO,这些字段可以构成JComboBox。 所以,只需编辑mycomboxeditor来重写该方法,并更改您的模型,以允许实际表示多个其他对象的对象。 |
![]() |
4
2
我相信这能解决你的问题。说明在.getcolumn(int列)中需要设置组合框的列
|
![]() |
5
2
对于每个行选择,jcomboBox内容呈现相同,因为 jtable不提供每列有多个编辑器的功能。 您必须扩展jtable类以支持行的附加选择。 这篇文章很好地解释了这一点: http://www.javaworld.com/javaworld/javatips/jw-javatip102.html |
![]() |
6
2
除了CellEditor之外,还需要执行CellRenderer来绘制单元中的组合框,请看:
|
![]() |
7
1
然后,重写
|
![]() |
8
0
This page 可能对您有所帮助,尽管您似乎只限于在列中的所有单元格中使用相同的组合框。 |
![]() |
9
0
需要创建jtable的子类来重写方法tablecellEditor getcelleditor(int row,int column)。 这使您能够为任何行和列组合设置任意单元格编辑器。默认方法是为整个列设置单元编辑器。 (也可以通过覆盖getcellrenderer来设置单个单元渲染器。) |