【发布时间】:2014-09-24 16:47:38
【问题描述】:
我正在尝试编写一种方法,该方法针对给定的参数(值、颜色),在值等于 cellValue 的单元格的背景上设置颜色。
我的方法实际上做的是,它为整行设置单元格的背景颜色,当我选择表格上的行时,我希望方法只在特定列设置颜色(其中 cellValue 等于 value ) 每次我调用该方法时。
void setCellBackgroundColor(boolean cellValue, final Color color) {
List<List<Object>> data = tView.getTTableModel().getData();
for (int row = 0; row < data.size(); row++) {
for (int col = 0; col < data.get(row).size(); col++) {
TableCellRenderer renderer = tView.table.getCellRenderer(row, Col);
Component component = tView.table.prepareRenderer(renderer, row, col);
boolean bValue =
TDataTypeRenderer.parseIntoRealValue(
data.get(row).get(col)
)
);
if (bValue == cellValue) {
component.setBackground(color);
}
}
【问题讨论】:
-
和 prepareRenderer 是好的和适当的可能方式(具有列和行坐标),但它是覆盖 JTables 方法的一部分,不会在行和列内循环,结果渲染器(prepareRenderer)应该只是一个实例在视图内循环,注意 prepareRenderer 讨厌空的 JTables 视图,必须在调用被绘制之前测试行 > 0
标签: java swing jtable tablecellrenderer