2012-10-17 40 views
0

我有一個JTable 5x5,我想寫一個過程setColorTable(JTable table,int Row,int Col),當調用過程setColorTable時它將setBackground color爲表中的row和col 。每個人都可以幫助我。如何在JTable中改變行的顏色

非常感謝。

+2

請至少嘗試書面方式一些代碼,如果您仍然有問題,請發佈它。 – dngfng

+0

查看a)在swing標籤wiki中引用的教程b)以f.i引用的舊版QA。在問題的邊欄c)做一些研究並嘗試你發現的東西...... – kleopatra

回答

1

您將不得不創建一個擴展Swing組件的自定義TableCellRenderer(如果您只想更改顏色,JLabel可能會適合您的需求),並實現TableCellRenderer接口。

嘗試閱讀thisJavaDoc

1

您可以通過擴展javax.swing.table.DefaultTableCellRenderer中寫自己的類,然後在此改變下面的方法,如你所願。

public class MyNewCellRenderer extends DefaultTableCellRenderer 
{ 
@Override 
    public Component getTableCellRendererComponent(
      JTable table, Object object, 
      boolean isSelected, boolean hasFocus, 
      int row, int column) 
    { 
     JLabel label = (JLabel) super.getTableCellRendererComponent(table, object, isSelected, hasFocus, row, column); 
    label.setBackground(Color.WHITE); 
    } 
} 

最後將TableCellRenderer置於;

jTable1 = new javax.swing.JTable() 
{ 
    public TableCellRenderer getCellRenderer(int row, int column) 
    { 
     return new MyNewCellRenderer(); 
    } 
}; 
+2

基本上是正確的,只要注意:由於DefaultTableCellRenderer中的一個錯誤,這將不夠好 - 詳情參見[近期QA]( http://stackoverflow.com/q/9607670/203657) – kleopatra

1

如何改變行的顏色在JTable中

着色(Font,Foregroung,Backgroung,EI)全行有prepareRenderer