2014-06-30 52 views
1

一切都好嗎?如何更改JTable中第一個單元格的背景顏色?

我在我的Java應用程序中有以下表格。 由於他使行具有某種顏色,我將在下面的代碼中顯示。

我想要的是隻有第一列是彩色的,其他人希望以默認顏色顯示。

public class PriorityCellRenderer extends DefaultTableCellRenderer { 
@Override 
public Component getTableCellRendererComponent(JTable table, Object value, 
     boolean isSelected, boolean hasFocus, int row, int column) { 
    super.getTableCellRendererComponent(
      table, value, isSelected, hasFocus, row, column); 

    //if (Integer.valueOf(1).equals(table.getValueAt(row, 1)) && 0 == column) && 9 < column) 
    if (String.valueOf(1).equals(table.getValueAt(row, 0))) { 
     setForeground(Color.BLUE); // or background 
    } 
    if (String.valueOf(2).equals(table.getValueAt(row, 0))) { 
     setForeground(Color.GREEN); // or background 
    } 
    if (String.valueOf(3).equals(table.getValueAt(row, 0))) { 
     setForeground(Color.YELLOW); // or background 
    } 
    if (String.valueOf(4).equals(table.getValueAt(row, 0))) { 
     setForeground(Color.RED); // or background 
    } 
    return this; 
} 
} 

enter image description here

實現我的問題嗎?

有人可以幫我嗎?

非常感謝。對於目標列

+0

刪除其他IFS? – mxb

+0

這應該是:'如果(0 ==列)setBackground(Color.RED)' – Jens

+0

感謝所有的答覆。我試過這個:if(String.valueOf(1).equals(table.getValueAt(row,0))&& column == 0){setForeground(Color.BLUE); }但結果是一樣的。 – rpirez

回答

5
  1. 設置自定義渲染:

    table.getColumnModel().getColumn(COLUMN_INDEX).setCellRenderer(new PriorityCellRenderer()); 
    
  2. getTableCellRendererComponent()驗證列索引if(column == COLUMN_INDEX)

+0

謝謝你的幫忙Sir :) – rpirez

+0

code posted,描述qeustion是prepareRenderer的工作() – mKorbel

+0

@mKorbel,你說的對,可以在'JTable'的'prepareRenderer()'方法中完成。 – alex2410

相關問題