我目前有一個由7列和許多行數據組成的JTable。JTable中列中的顏色單元格
我該如何去關於第7列中每個單元的顏色?我想根據單元格內的數據進行着色。
因此,如果在第7列的單元格之一是說低於0,那麼我想紅色或如果在第7列的單元格之一大於0,則顏色綠等
謝謝您
我目前有一個由7列和許多行數據組成的JTable。JTable中列中的顏色單元格
我該如何去關於第7列中每個單元的顏色?我想根據單元格內的數據進行着色。
因此,如果在第7列的單元格之一是說低於0,那麼我想紅色或如果在第7列的單元格之一大於0,則顏色綠等
謝謝您
您可以使用TableCellRenderer爲表中的單個單元格創建這些自定義樣式。這tutorial詳細解釋。在該頁面上是一個使用顏色渲染器的示例,該渲染器可能是您需要的開始。
覆蓋,當你初始化表對象prepareRenderer()
方法,把你的具體條件語句相應地改變顏色,那麼顏色的變化將在你的應用程序,你定義的反映。假設你有一個全球性的JTable變量table
,讓model
是你的DefaultTableModel實例:
table = new JTable(model)
{
public Component prepareRenderer (TableCellRenderer r, int row, int col)
{
Component comp = super.prepareRenderer(r, row, col);
if (col == 6 && !isCellSelected(row, col))
{
if (table.getValueAt(row, col) < 0)
comp.setBackground(Color.RED);
else
comp.setBackground(Color.GREEN);
}
return comp;
}
};
上面的代碼檢查col == 6
,因爲你要上色7列,其對應列索引6(從0開始) 。在內部if語句中,它正在檢查單元值並相應地更改單元格背景顏色。
@deporter Ehhh ..(聳了聳肩)我只是移動到下一個問題。 – 2012-03-03 22:30:30
@AndrewThompson你是對的。 – Juvanis 2012-03-03 22:32:23
對不起,我剛剛學會了如何並將從現在開始。 – 2012-03-10 21:13:23