2013-03-02 157 views
-1

我在經常由不同線程更新的框架中有JTable。我正在尋找方法來改變JTable,不論其內容的單元格的背景顏色,像無條件地更改JTable單元格的背景顏色

JTable.setColorAt(Color.YELLOW, 0, 0) 

有像什麼這個存在嗎?如果沒有,是否有像這樣爲像我這樣的初學者寫這樣的東西的方法?

請幫忙.............

+0

@Audrius:它是相似的,但不是重複的。該鏈接需要更改編輯的單元格的背景,而不是所有單元格。 – 2013-03-02 17:34:04

+0

沒有問題看@Ravindra Gullapalli的回答,有構造函數Object value,boolean isSelected,boolean hasFocus,int row,int column,每個參數都是關於你的問題尤其是int row,int column,那麼只測試'conditions == int row' &&'conditions == int column' then'setBackground(Color.YELLOW)' – mKorbel 2013-03-02 18:47:05

回答

4

定義自己的單元格渲染器類設置背景顏色像這樣

public class MyCellRenderer extends javax.swing.table.DefaultTableCellRenderer { 
    public java.awt.Component getTableCellRendererComponent(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
     java.awt.Component cellComponent = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
     cellComponent.setBackground(java.awt.Color.YELLOW); 
     return cellComponent; 
    } 
} 

細胞,並將其連接到您的表

MyCellRenderer mcr = new MyCellRenderer(); 
for (int columnIndex = 0; columnIndex < myTable.getColumnCount(); columnIndex ++) { 
      myTable.getColumnModel().getColumn(columnIndex).setCellRenderer(mcr); 
     } 
+0

感謝您的幫助 對不起,從我身邊拖延了很久,我陷入了兩週的困境......。 。我通過添加條件嘗試了這一點,但單元格顏色只在選中時纔會更改。任何建議? – gnmanoj 2013-03-20 14:46:16

+0

您的問題被標記爲重複,並指定了其他問題的鏈接。也看看這個。在這裏討論'prepareEditor'。 – 2013-03-20 14:52:56

相關問題