假设您有一个JTable
,并且每个单元格要显示三个不同颜色的字符串,例如value1(红色),value2(蓝色),value3(绿色)。
我覆盖了getTableCellRendererComponent
的{{1}},但DefaultTableCellRenderer
方法为单元格中显示的所有字符串提供了唯一的颜色。
setForeground(Color)
答案 0 :(得分:3)
答案 1 :(得分:2)
单元格表的默认渲染器是JLabel。该组件支持HTML标记。您可以使用的最简单的解决方案是使用HTML来呈现具有不同颜色的字符串。所以你可以构建一个String,如:
<html><font color="blue">A String</font><font color="red">Another String</font></html>
并将其设置为单元格,您不必担心渲染器。
Most swing components allow you to use HTML, this is not only limited to tables.
另一种可能性是你创建一个从JComponent扩展的类,并编写paintComponent()程序,以便它以不同的颜色绘制这三个字符串。然后,您可以将此组件设置为渲染器。但这更复杂。因为渲染器的工作方式类似于“标记”,所以在绘制单元格时会标记正确的颜色。例如,如果您需要在单元格上绘制极其复杂的自定义图形,这将非常有用。
如果您没有大量的细胞,我会坚持使用HTML。