gpt4 book ai didi

java - DefaultTableCellRenderer 不工作

转载 作者:行者123 更新时间:2023-12-01 08:49:33 25 4
gpt4 key购买 nike

我正在尝试更改 JTable 第三行单元格的颜色(如果它们有值)。我读到,执行此操作的一个好方法是使用表格单元格渲染器。然而,它似乎什么也没做!这是我的渲染器代码:

public class RenderTablaPrestamos extends DefaultTableCellRenderer{

@Override
public Component getTableCellRendererComponent (JTable tabla, Object valor,
boolean isSelected, boolean hasFocus,
int row, int col){
JLabel celda = (JLabel) super.getTableCellRendererComponent(tabla, valor, isSelected, hasFocus, row, col);

if(valor instanceof Integer){
Integer v=(Integer)valor;
if(col==3){
if(valor!=null){
celda.setBackground(Color.red);
}
else{
celda.setBackground(Color.WHITE);
}
}
else{
celda.setBackground(Color.WHITE);
}
}
return celda;
}
}

这是我如何使用渲染器:

tablaUsuariosPrestamos.setDefaultRenderer(Object.class,new RenderTablaPrestamos());

这是我的 JTable 的图片(我认为模型代码没有任何用处,因为它有点长):

enter image description here

我认为它与 if 子句没有任何关系,正如我对它们的评论一样,它也不起作用。

我哪里出错了?

最佳答案

使用

for (int i = 0; i < tabla.getColumnCount(); i++) {
tabla.getColumnModel().getColumn(i).setCellRenderer(new RenderTablaPrestamos());
}

而不是

tablaUsuariosPrestamos.setDefaultRenderer(Object.class,new RenderTablaPrestamos());

关于java - DefaultTableCellRenderer 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42471142/

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