[英]JTable is coloring every cell when I only want it to color specific cells
private class ColorRenderer extends DefaultTableCellRenderer
{
String[][] data;
public ColorRenderer(String[][] data)
{
this.data = new String[data.length][data[0].length];
for(int i = 0; i < data.length; i++)
{
for(int g = 0; g < data[0].length; g++)
{
this.data[i][g] = data[i][g];
}
}
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col)
{
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);
if(row < data.length - 3 && data[row][col].equals(""))
{
c.setBackground(Color.LIGHT_GRAY);
}
return c;
}
}
data
是填充JTable的數據數組。 該表主要是字符串,但是有一些空字符串。 我想在僅包含空字符串的單元格中上色,而不是最后三行。
但是由於某種原因,它現在在我的整個桌子上都是亂塗的,為什么?
在對DefaultTableCellRenderer.getTableCellRendererComponent
的覆蓋中,在if語句之后添加else部分:
if(row < data.length - 3 && data[row][col].equals(""))
c.setBackground(Color.LIGHT_GRAY);
else
c.setBackground(table.getBackground());
默認的表格單元格渲染器使用一個組件,該組件用於渲染每個單元格的內容。 更改顏色后,它將保留該顏色,直到顯式更改該顏色為止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.