【发布时间】:2015-02-16 06:22:04
【问题描述】:
如何为不同的列设置不同的网格颜色?
我知道table.setGridColor(Color.GREEN); 将网格颜色设置为特定颜色,但是为每一行设置颜色呢?
我希望我的表格每个奇数列网格颜色为红色,每个偶数列网格颜色为绿色。
去看看我想要的例子
G____R____G____R____G
|____|____|____|____|
|____|____|____|____|
|____|____|____|____|
|____|____|____|____|
其中 R 表示线条应为红色,G 表示线条应为绿色。
这只是为了好玩和圣诞气氛。
感谢任何人的帮助。
我能想到的唯一可能的解决方案是创建一个自定义TableCellRenderer
并在方法内public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
正在做setBorder(new MatteBorder(0, 0, 0, 1, Color.RED));
对于每一个奇数列和setBorder(new MatteBorder(0, 0, 0, 1, Color.GREEN));
对于每个偶数列。
【问题讨论】:
-
覆盖
prepareRenderer(),如这些examples所示。 -
@trashgod 对不起,我没有看到一个可以帮助我的案例的例子。他们中的大多数人只是建议使用 JXTable,而其他人则使用 MatteBorder,我指定了但我不太喜欢,因为它不会为列线本身着色,而是为单元格的边缘着色。
-
不是一个大网格,而是将其分成更小的部分,然后您可以单独着色。
-
@DavidColer 以及如何将网格分成更小的部分?这是我无法解决的问题。
标签: java swing colors jtable tablecellrenderer