gpt4 book ai didi

java - 在 Java 中更改表格单元格颜色

转载 作者:搜寻专家 更新时间:2023-11-01 01:30:22 25 4
gpt4 key购买 nike

我已阅读并实现此 Changing JTable cell color

我想知道的是如何实际使用这段代码?我只想在单击时更改表格单元格的颜色。

最佳答案

在您引用的代码中,您有一个自定义 CellRenderer。

将其添加到表格后,您只需在适当的位置进行格式化:

class CustomRenderer extends DefaultTableCellRenderer 
{
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

// Formatting here

return c;
}
}

DefaultTableCellRenderer 就是将在 JTable 中用于绘制单元格的组件。更准确地说,在这种情况下,该组件是一个 JLabel(您可以通过检查来自 DefaultTableCellRenderer 的源代码来查看)。

因此,您应该对“c”对象(或“this”,因为该方法实际上每次都返回相同的组件:本身)进行所有格式设置。例如,c.setBackground() 将允许您设置背景颜色。

将为 JTable 的每个单元格调用被覆盖的 getTableCellRendererComponent() 方法,并使用参数告诉您有关上下文的信息。您知道表格、行、列、应该显示的值,并且您还知道单元格是否被选中,这对您的情况有帮助:

if (selected)
c.setBackground(Color.YELLOW);

更进一步,请注意,因为您覆盖了 DefaultTableCellRenderer 类,并使用了它自己的方法,所以您已经完成了一些格式设置,比如背景颜色,它来自表格。因此,您只需在需要时定义自己的颜色。否则,您将不得不关注所有情况,因为使用相同的组件,您将以颜色集结束一次,然后应用于所有连续的单元格,因为不会对它进行任何更改。

如果您想详细了解它的完成和使用方式,我建议您阅读 DefaultTableCellRenderer 的源代码(及其在 JTable 中的使用)。

关于java - 在 Java 中更改表格单元格颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2780573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com