gpt4 book ai didi

java - JTable 的 Customrenderer 被多次调用

转载 作者:行者123 更新时间:2023-12-02 04:07:52 25 4
gpt4 key购买 nike

我想根据 JTable 中的值对某些行进行着色。但是我的 customrenderer 被无限次调用,并且整个表格而不是某些行都被着色。

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,int row, int column) 
{
Component c = render.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

DefaultTableModel model = (DefaultTableModel)table.getModel();
String flag = (String)model.getValueAt(row, 0);

if(flag.equalsIgnoreCase("java"))
{

c.setBackground(new Color(0xE8F2FE)); //light blue
}

return c;
}

最佳答案

所有单元格使用相同的渲染器。一旦更改渲染器的背景,该背景将用于所有单元格。

所以你需要一个“else条件”来将背景设置为默认颜色。像这样的东西:

else
c.setBackground( table.getBackground() );

您还可以查看Table Row Rendering用于突出显示行背景的替代方法,该方法可以更简单,特别是当每列中发现不同类型的数据时。

关于java - JTable 的 Customrenderer 被多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34084634/

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