gpt4 book ai didi

java - TableCellRenderer 使用来自另一个单元格的数据

转载 作者:行者123 更新时间:2023-12-01 23:17:11 24 4
gpt4 key购买 nike

我有 2 列的 jTable1。我想控制第 1 列的外观,因此我使用以下代码根据单元格行是偶数还是奇数来将单元格中的文本字体设置为粗体或不粗体。

import java.awt.Component;
import java.awt.Font;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;

public class CustomTableCellRenderer extends DefaultTableCellRenderer{
@Override
public Component getTableCellRendererComponent (JTable table, Object obj,
boolean isSelected, boolean hasFocus, int row, int column) {
Component cell = super.getTableCellRendererComponent(
table, obj, isSelected, hasFocus, row, column );
if (row % 2 == 0){
cell.setFont(getFont().deriveFont(Font.BOLD));
}
return cell;
}
}

我用以下方式调用它:

jTable1.getColumnModel().getColumn(1).setCellRenderer(new 
CustomTableCellRenderer());

我想要的是修改此 TableCellRenderer ,以便根据同一行上的其他列(第 0 列)值绘制单元格背景。例如,如果第 5 行第 0 列的值是“书”,则第 5 行第 1 列的单元格将为红色,如果第 0 列的值为“报纸”,则第 1 列的颜色为绿色。我的问题是我不知道如何将column0 值传递给column1 渲染器,以便它将用于更改颜色。

最佳答案

检查 .getTableCellRendererComponent(...) 方法的签名:您将获取对 JTable 的引用(您可以从中获取 TableModel)以及当前行的索引和专栏。

使用它们,您可以查找所需的任何相对值。

关于java - TableCellRenderer 使用来自另一个单元格的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21047446/

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