我制作的程序是某种房间经理,
每个房间每天都有不同的客户,有时一个客户可以在同一天带几个房间。
我想用自己的颜色为每个客户着色。 如果不为每个客户创建一个独特的单元格渲染器,我可以这样做。
我是J-Tables的新手,整个渲染系统在我看来效率不高。
这是我的应用的屏幕截图,
我正在为工作日和周末的列标题使用不同的渲染器。 此外,单元格是J-Buttons,渲染器为它们着色,但只有相同的颜色。
灰色细胞是"新"客户,不同的客户,相同的颜色占用了橙色的那些:(
任何想法?
感谢,
戴夫
答案 0 :(得分:3)
getTableCellRendererComponent(...)
方法中的逻辑,并且您使用正确传递给此方法的参数。答案 1 :(得分:3)
在此处查看示例#3(“渲染红色或绿色”): http://www.javapractices.com/topic/TopicAction.do?Id=168
最重要的是,您的渲染器可以使用单个共享JLabel,根据单元格设置不同的颜色(在上面的示例中,它们扩展了扩展JLabel的DefaultTableCellRenderer,因此有效地将相同的JLabel用于所有单元格。如果你不喜欢继承,你可以使用自己的共享JLabel)。 它的工作原理是因为JTable渲染过程使用JLabel作为“可重复使用的标记” - 连续地遍历单元格,“记录”单元格的外观,然后继续前进。如果你的桌子是(比方说)5X3,它实际上不能容纳15个标签,只有15个图像。