回答
在你引用的代碼中,你有一個自定義的CellRenderer。
一旦你添加它到表中,所有你需要的是做格式在適當的地方:
class CustomRenderer extends DefaultTableCellRenderer
{
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);
// Formatting here
return c;
}
}
一個DefaultTableCellRenderer無非是將JTable中所使用的成分多還是少,繪製細胞。更確切地說,在這種情況下,組件是一個JLabel(你可以通過檢查來自DefaultTableCellRenderer的源來看到這一點)。因此,所有你應該做的格式是在「c」對象上(或者在「this」上,因爲方法實際上每次都返回相同的組件:本身)。例如,c.setBackground()
將允許您設置背景顏色。
被覆蓋的getTableCellRendererComponent()
方法將爲JTable的每個單元調用,參數告訴你關於上下文的信息。你知道表,行,列,這是應該要顯示的值,如果選擇與否細胞,你也知道,這可能與你的情況下幫助:
if (selected)
c.setBackground(Color.YELLOW);
要請進一步注意,因爲您重寫了DefaultTableCellRenderer類,並使用它自己的方法,所以您已經完成了一些格式化操作,例如背景顏色,它是表格中的一種。因此,您只需要在需要時定義自己的顏色。如果不是,則必須注意所有情況,因爲由於使用了相同的組件,您將以顏色集合結束一次,然後應用於所有連續的單元格,因爲沒有任何操作可以更改它。
如果您想了解更多關於它的完成和使用方式,我建議您閱讀DefaultTableCellRenderer(及其在JTable中的使用)的源代碼。
這是否意味着單元格顏色會永久更改,或者一旦單擊其他單元格就會重置它。
如果您只是想暫時改變顏色,那麼最簡單的方法就是使用Table Row Rendering中介紹的概念,這樣您就不必爲每種類型的數據創建多個渲染器。
如果您希望單元格顏色是永久性的,那麼它會涉及更多,因爲現在您實際上需要爲每個應該着色不同的單元格保存數據。再次,最簡單的方法是使用上面的方法,然後可能保留一組所有的彩色單元格。
當我想要爲JTable中的特定單元格着色時,我也很掙扎。 您可以創建自定義表格單元格渲染器,並將其作爲參數發送給行/列:
class CustomRenderer extends DefaultTableCellRenderer {
int col;
int row;
public CustomRenderer (int col, int row)
{
this.col = col;
this.row = row;
}
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);
setForeground((column == this.col && row == this.row)
? Color.red : Color.black);
return c;
}
}
table.getColumnModel().getColumn(0).setCellRenderer(new CustomRenderer(0, 1);
table.getColumnModel().getColumn(1).setCellRenderer(new CustomRenderer(1, 3);
- 1. jquery更改表格單元格顏色
- 2. 更改單元格顏色
- 3. 更改單元格顏色
- 4. Java JTable更改單元格顏色
- 5. 更改JTable中單元格的顏色
- 6. 更改xamDataGrid單元格中的顏色
- 7. 更改dataGridView單元格中的顏色
- 8. 如何更改表格中單擊單元格的單元格背景顏色?
- 9. 當單元格選中時更改單元格的顏色
- 10. 如何更改reStructuredText中表格單元格的背景顏色?
- 11. 如何更改列表網格中的單元格顏色
- 12. C#更改TableLayoutPanel中表格單元格的背景顏色
- 13. 更改表格內單個單元格的邊框顏色
- 14. 更改datagrid行單元格的顏色
- 15. Tkintertable更改單元格/行的顏色
- 16. 更改標記單元格的顏色
- 17. Setinterval更改單元格的顏色
- 18. 基於一組不同顏色的單元格更改單元格顏色
- 19. Datagridview更改非空單元格的單元格顏色
- 20. VBA根據單元格數量更改單元格的顏色
- 21. 如何使用java腳本更改表格中單元格的背景顏色
- 22. Ios中的表格單元格顏色
- 23. 更改表格單元格邊框的顏色
- 24. 根據值更改表格單元格的顏色
- 25. 如何動態更改表格視圖單元格的顏色
- 26. 更改交替div內表格的單元格背景顏色?
- 27. 根據標題更改表格單元格的背景顏色
- 28. javascript如何更改鏈接onmouseover表格單元格的顏色?
- 29. Sharepoint單元格更改顏色代碼
- 30. 基於類更改單元格顏色
謝謝!正是我需要的。我只是沒有想通過。 – pypmannetjies 2010-05-11 19:12:32