[英]Remove Renderer from a JTable
我有一个自己编写的带有渲染器的JTable。 当我将JTable设置为禁用时,我希望将其涂成灰色,并且无法使用当前的Renderer。 这就是为什么我想在禁用JTable时删除渲染器,然后在启用JTable时再次设置它。
有可能吗,或者我可以采用其他解决方案?
在设置自定义渲染器之前,请从JTable获取默认渲染器。 将其存储在参考中以备后用。 现在将您的自定义渲染器设置为JTable。
禁用该表之前,请设置默认表一,启用该表时则设置自定义表一。
我希望这对您有用。
您可以设置一个新的DefaultTableRenderer()。 在渲染器中也应该有可能。 或者,您可以扩展DefaultTableRenderer。
使用JXTable(来自SwingX项目 )-其渲染器自动遵守表启用
编辑
再次阅读时:
我有一个自己编写的带有渲染器的JTable。 当我将JTable设置为禁用时,我希望将其绘制为灰色,并且无法使用当前的Renderer
为什么不可能呢? 在您的自定义渲染器中,只需查询表启用并相应地配置其状态
public Component getTableCellRendererComponent(...) {
...
myRenderingComponent.setEnabled(table.isEnabled());
return myRenderingComponent;
}
您可以检查返回渲染器组件时是否启用了该表。 然后,您可以在渲染器中设置状态变量,该状态变量将在禁用该单元时与启用该单元时不同地渲染该单元。 这种方法还可以允许其他状态-我有一个渲染器,可以根据特定列中的值允许使用不同的“配置文件”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.