gpt4 book ai didi

java - 如何处理 tablecellrenderer 中重复的列标题?

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

大家好,我的程序中遇到以下问题。我有几个按列应用的 tablecellrenderer。问题是,如果某列在我的表中出现两次,则单元渲染器将无法工作,并且两列均未格式化。我也无法更改列名称,因为我的客户对该表的外观有特定的想法

我问了谷歌,stackoverflow 搜索,但我找不到任何解决方案。

您知道解决此问题的方法吗?

提前致谢

我应用 cellrenderer 的行

for(int i=0;i<(columnnames.length-anz_col);i++){
//Berechnung einmalig durchführen
actcol=i+anz_col;
//CellFormater
tbl_patchstand.getColumn(columnnames[actcol]).setCellRenderer(new PatchstandCellRenderer(tbl_patchstand.getDefaultRenderer(Object.class), actcol, maxfpatches[i]));
tbl_patchstand.getColumn(columnnames[actcol]).setCellRenderer(new PatchstandCellRenderer(tbl_patchstand.getDefaultRenderer(Double.class), actcol, maxfpatches[i]));
tbl_patchstand.getColumn(columnnames[actcol]).setCellRenderer(new PatchstandCellRenderer(tbl_patchstand.getDefaultRenderer(Integer.class), actcol, maxfpatches[i]));
}

Cellrenderer 本身:

public class PatchstandCellRenderer extends DefaultTableCellRenderer {
/**
*
*/
private int maxval,col;
private double oldval,newval;

public PatchstandCellRenderer(TableCellRenderer cellRenderer, int col, int maxval) {
super();
this.maxval=maxval;
this.col=col;
}

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if((column==col) && value!=null && (!((String)value).trim().equals("-")) && (!((String)value).trim().equals(""))){
//Umrechnen Wert auf Range
oldval=Double.parseDouble((String) value);
newval=(oldval)/(maxval);
c.setBackground(GetColor.getColor(newval));
}
else
c.setBackground(Color.WHITE);
return c;
}
}

Cellrenderer 获取此列的最大值,该最大值是在应用 cellrenderer 之前计算的。该最大值用于获取 Java 色调配色方案中从 o 到 max 的颜色范围。

最佳答案

使用列模型为您的列设置渲染器。

而不是

tbl_patchstand.getColumn(columnnames[actcol])

使用

tbl_patchstand.getColumnModel().getColumn(actcol)

每列的索引必须是唯一的。
这应该可以解决您的问题。

关于java - 如何处理 tablecellrenderer 中重复的列标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25245345/

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