【发布时间】:2011-07-23 05:24:27
【问题描述】:
我想创建一个透明的 JTable。表格本身并没有造成太大的问题,我已经实现了 TableModel 和 TableCellRenderer,并在 JTable、封闭的 JScrollPane 和 JScrollPane 的 ViewPort 上设置了 setOpaque(false)。
表格现在可以正确地绘制标题,因为它位于 JScrollPane 中,因此我设置了自己的 TableCellRenderer 以使用 getTableHeader().setDefaultRenderer(new TaskTableHeaderRenderer()); 呈现标题。我也希望它是透明的,只是使用 JLabel 的文本。但尽我所能,我无法得到它。 Renderer 确实提供了一个透明组件(我什至尝试只使用带有 setOpaque(false) 的 JPanel),甚至尝试在 JTableHeader 上设置 setOpaque(false) 并为所有相关组件设置透明背景颜色。似乎没有任何帮助。
我使用的 LookAndFeel 是 JGoodies 的 PlasticXPLookAndFeel,但我尝试了 Metal 和 Windows Look & Feel 实现也无济于事。此外,调试表明 PlasticXPLookAndFeel 使用 BasicTableHeaderUI 而不对其进行子类化。
那么如何实现透明表头呢?
【问题讨论】: