gpt4 book ai didi

java - 如何在确定的表格单元格中更改背景颜色

转载 作者:行者123 更新时间:2023-12-03 18:20:41 42 4
gpt4 key购买 nike

我有 CustomTableCellRender

  
public class CustomCellRenderer extends JLabel implements TableCellRenderer {

private TableCellRenderer defaultCellRenderer;

public CustomCellRenderer(TableCellRenderer defaultCellRenderer) {
this.defaultCellRenderer = defaultCellRenderer;
}

public Component getTableCellRendererComponent(JTable table, Object ovalue, boolean isSelected, boolean hasFocus, int row, int column) {
String val = (String) ovalue;
Component c = defaultCellRenderer.getTableCellRendererComponent(table, ovalue, isSelected, hasFocus, row, column);
if (c != null) {
if (val.equals("0h")) {
c.setForeground(Color.RED);
} else {
c.setForeground(table.getForeground());
}
return c;
} else return null;
}
}

...

 

TableCellRenderer renderer = new CustomCellRenderer(sumTable.getDefaultRenderer(columnModel.getColumn(i).getClass()));
columnModel.getColumn(i).setCellRenderer(renderer);

and it worked normal util I need change cell Background Color it sets Color not in certain cells and in all column, all cells.


...
if (val.equals("0h")) {
c.setBackground(Color.GRAY);
} else {
c.setForeground(table.getForeground());
}
...

我需要做什么?

最佳答案

原因是(通常)DefaultTableCellRenderer 臭名昭著的颜色内存,如described in a recent answer

您的特定上下文中的问题是您使用相同的渲染器实例作为委托(delegate) 作为其他地方的默认渲染器。最简单的解决方案是使用 2 个不同的实例(毕竟,您知道默认安装了哪种类型的渲染器)。

自定义着色(或其他单元格视觉装饰)的最简单解决方案是使用 SwingX具有对渲染组件的一致配置支持。

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

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