我正在创建一个扩展TableModel
的{{1}}。但是,它的内容会定期更改,并且列数会根据显示的数据而变化。有时候,我需要使用AbstractTableModel
来修改第2列中的单元格,有时我还需要第3列中的单元格ComboBox
。
我知道您可以通过执行ComboBox
我是否可以动态设置table.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(myComboBox));
CellEditor
,以便在致电TableModel
时更新CellEditor
?
修改:我基本上是将table.updateUI()
传递给我正在使用的大TableModel
数据结构。有可能让您厌烦细节,它由WellCollection
组成,由Wells
组成,由Attributes
组成。但这并不重要。重要的是,我希望用户能够翻阅属性,并在下一次单击时在表格中显示不同的ProposedValues
(我之前使用ProposedValues
完成)。
请注意,updateUI()
可以是高程类型,也可以不是高程类型。如果是高程类型,则需要有一个额外的列。
这是我的代码:
Attribute
答案 0 :(得分:2)
我可以动态地在我的TableModel中设置CellEditor,以便 当我调用table.updateUI()?
时,CellEditor会更新
我正在创建一个扩展AbstractTableModel的TableModel。它的 但是,内容会定期更改,列数会发生变化 取决于显示的数据。偶尔,我需要使用一个 ComboBox编辑第2列中的单元格,偶尔我需要一个 第3列中单元格的ComboBox。
我可以动态地在TableModel中设置CellEditor
更快地发布SSCCE,简短,可运行,可编辑,仅JFrame
JTable
JScrollPane
AbstractTableModel
local variable
存储{{1}}的硬编码值作为{{1}}
答案 1 :(得分:2)
我可以动态地在TableModel中设置CellEditor
CellMdl不是由TableModel决定的。
JTable决定使用哪个编辑器。
您可以覆盖table.getCellEditor(...)方法以动态更改正在使用的编辑器。有关此方法的示例,请参阅:https://stackoverflow.com/a/7770309/131872。