繁体   English   中英

从JTable删除渲染器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM