我有一个自己写的带有渲染器的JTable。当我将JTable设置为禁用时,我希望它被绘制为灰色,而使用当前渲染器则不可能。这就是为什么当我将JTable设置为禁用时,我想移除渲染器,然后在启用时再次设置它。
这是可能的吗,或者我可以采取不同的解决方案?
发布于 2011-11-21 12:17:15
您可以设置一个新的DefaultTableRenderer()。在你的渲染器中也应该是可能的。或者,您可以扩展DefaultTableRenderer。
发布于 2011-11-21 12:25:46
在设置自定义渲染器之前,请从JTable获取默认渲染器。将其存储在引用中以供以后使用。现在将自定义渲染器设置为JTable。
在禁用该表之前,请设置默认表,当您启用该表时,请设置自定义表。
我希望这对你有用。
发布于 2011-11-21 12:29:49
使用JXTable (从SwingX project) -它的渲染器自动支持表启用
编辑
再读一遍:
我有一个我自己写的带有渲染器的JTable。当我将JTable设置为禁用时,我希望它被绘制为灰色,而使用当前的渲染器是不可能的
为什么这不可能呢?在您的自定义渲染器中,只需查询表启用并相应地配置其状态
public Component getTableCellRendererComponent(...) {
...
myRenderingComponent.setEnabled(table.isEnabled());
return myRenderingComponent;
}
https://stackoverflow.com/questions/8211576
复制相似问题