我有一个带有我自己编写的渲染器的JTable。当我设置JTable禁用时,我希望它以灰色绘制,并且使用当前的渲染器是不可能的。这就是为什么我想在禁用JTable时删除渲染器,然后在启用时再次设置它。
这可能,或者我可以采取不同的解决方案吗?
答案 0 :(得分:3)
在设置自定义渲染器之前,从JTable获取默认渲染器。将其存储在参考中供以后使用。现在将自定义渲染器设置为JTable。
在禁用表格之前,请设置默认表格,当您启用表格时,请设置自定义表格。
我希望这适合你。
答案 1 :(得分:2)
您可以设置新的DefaultTableRenderer()。你的渲染器也应该可以。或者,您可以扩展DefaultTableRenderer。
答案 2 :(得分:2)
使用JXTable(来自SwingX project) - 其渲染器自动尊重表启用
修改强>
再次阅读:
我有一个带有我自己编写的渲染器的JTable。当我设置 JTable禁用,我希望它用灰色绘制,并与当前 渲染器不可能
为什么不可能?在您的自定义渲染器中,只需查询表启用并相应地配置其状态
public Component getTableCellRendererComponent(...) {
...
myRenderingComponent.setEnabled(table.isEnabled());
return myRenderingComponent;
}
答案 3 :(得分:1)
您可以在返回渲染器组件时检查表是否已启用。然后,您可以在渲染器中设置一个状态变量,当禁用它时,它将以不同于启用时为单位呈现单元格。这种方法还可以允许其他状态 - 我有一个渲染器,根据特定列中的值允许不同的“配置文件”。