当前位置: 首页 > 知识库问答 >
问题:

JTable从数据模型更改单元格背景颜色

牟嘉
2023-03-14

这听起来可能有点奇怪,但解释我的问题的最好方法就是如标题所述。

我有一个JTable,它使用自定义Tablemodel,在这个Tablemodel我有不同的方法。

我需要一种方法,当我在Tablemodel中调用一个特定的方法时,转到它被添加到的表,并更改位置(X,Y)单元格的背景颜色。

我可以从Tablemodel访问JTable对象

为了澄清这个问题,有一个使用特定Tablemodel的JTable,我需要在单元格的值更改时突出显示该单元格。

值更改是通过调用一个方法来完成的,该方法给我数据模型上的位置。

setData(对象值,int行,int列)

共有1个答案

董意蕴
2023-03-14

我能够做到这一点,通过使用一个小技巧,我覆盖了

public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
    Component comp = super.prepareRenderer(renderer, row, column);      
    if(((CTableModel)this.getModel()).getRowByNumber(row).isUpdated(column)){
        comp.setBackground(blinkColor);
        }
   return comp;
}

在我的表模型中,我保留了一个行对象列表,在每个对象中,我创建了一个方法来确认列是否更新。

所以我在渲染器运行和完成的那一刻问。

 类似资料:
  • 我想改变JTable的单元格背景颜色,想从MySQL数据库中获取数据。 我在MySQL中使用一个数据表,它有一个状态字段。如果状态为1,则单元格背景颜色应为红色;如果状态为0,则应更改为红色。

  • 问题内容: 我正在尝试使用渲染器为jTable的单元格上色,但是它们工作不佳,因为它们滞后于表格并且无法看到。这是我的代码: 我没有将其放入rendererclass中,因为它滞后了,我将其放入cicle的双精度中,具体地说,放入了第二个cicle。我希望它为超过24的单元格上色,如果现在我写的话,那是行不通的 它使桌子完全着色 编辑 按照要求,我创建了一个描述我的问题的小示例,我不知道是否存在发

  • 问题内容: 我想制作一个可编辑的表,然后检查数据以确保其有效。我不确定如何仅更改一个单元格的颜色。我想要一个单元格,例如(0,0)并将前景颜色设置为红色。我已经阅读了SO和Oracle上有关自定义ColorRenderer的其他文章,但是我不知道如何使用它。 谢谢。 问题答案: 假设您要用其他颜色渲染的单元格代表一种状态(我将以“拒绝并批准”为例)。然后,我将在我的表模型中实现一个名为getSta

  • 问题内容: 我试图使自己熟悉JTables,TableModels,JTableHeaders,渲染器等。我试图制作一个简单的虚拟表(出于练习目的),看起来像这样: 我还希望B2单元格-并且只有该单元格-具有蓝色(Color.BLUE)背景-所有其他单元格都可以具有自动分配的Swing默认颜色。 我的代码在下面,并且基于我在本网站和整个互联网上发现的无数示例。但是我没有得到想要的结果。相反,我得到