gpt4 book ai didi

java - 如何在JTable中设置特定行的颜色

转载 作者:行者123 更新时间:2023-11-30 03:33:21 25 4
gpt4 key购买 nike

我想为表中的特定行设置颜色。我已经实现了 getBadRows() 方法,它返回带有我想强调的键(行数)的 Map 。看我的代码:

private static class WorkingTimeCellRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
if (value instanceof Date) {
value = new SimpleDateFormat("dd.MM.yyyy").format(value);
}
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
WorkingTimeTableModel model = (WorkingTimeTableModel) table.getModel();

for (Map.Entry<String, Integer> r : model.getBadRows().entrySet()) {
c.setForeground(row == Integer.parseInt(r.getKey()) ? Color.RED : Color.BLACK);
}

return c;
}
}

例如,当我在 map 中有四个项目时,此方法仅突出显示 map 中的最后一个项目。前面的项目没有突出显示,因为看起来调用 c.setForeground() 时它总是刷新。

我想突出显示存储在我的 map 中的行。 Map的key对应表中行的索引。

我不知道该怎么做:(我已经尝试了很多方法。

最佳答案

不要在最后使用 for 循环,而是简单地检查 getTableCellRendererComponent 参数中的行号是否与坏行之一匹配。如果是这样,请将颜色设置为红色,如果不是黑色。

也许是这样的,

Color color = model.getBadRows().contains(row) ? Color.RED : Color.BLACK;
c.setForeground(color);

关于java - 如何在JTable中设置特定行的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28520587/

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