【发布时间】:2015-10-22 15:56:26
【问题描述】:
目前我在我的JPanel 中初始化我的JTable,如下所示:
private ArrayData data;
private JTable table;
private CustomTableModel model;
public ExtendedJPanel() {
data = ArrayData.getData();
model = new CustomTableModel(data);
table = new JTable(model);
TableColumn col = table.getColumnModel().getColumn(0);
col.setCellRenderer(new Column0Renderer());
col = table.getColumnModel().getColumn(1);
col.setCellRenderer(new Column1Renderer());
// do some other stuff
}
当我想修改JTable中的所有值时
我通过创建一个新的Object[][] 数组并为我的所有单元格调用fireTableCellUpdated(row, column) 直接与TableModel 交互。
我的问题是,在我的程序中的某个时刻,我的 JTable 丢失了它的自定义渲染器。
有人告诉我这是因为它正在更新TableColumnModel。
初始化JTable 以使CellRenderers 保持不变的最佳方法是什么
在JTable 的整个生命周期中保持不变?
【问题讨论】:
标签: java swing jtable initialization tablecellrenderer