2012-03-10 59 views
1

我可以成功設置整個JTable標題的背景顏色。如何在選中單元格時設置JTable標題背景顏色

一般,這看起來是這樣的:

m_table.getTableHeader().setBackground(new Color(205,209,235)); 

我在哪裏卡住是當選擇一個單元格,我有一個ListSelectionListener ...

我想設置的的背景當前在標題中選中的列爲另一種顏色。 (不是當前單元格的背景,這是很容易的)

更新:

我創造了這個:

import java.awt.Color; 
import java.awt.Component; 

import javax.swing.JTable; 
import javax.swing.SwingConstants; 
import javax.swing.table.DefaultTableCellRenderer; 
import javax.swing.table.TableCellRenderer; 

import com.ee.common.StringUtil; 

public class myHeaderRenderer 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(table != null) 
     { 
      if (isSelected) { 
       table.getTableHeader().setBackground(Color.orange); 
      } 
      else { 
       table.getTableHeader().setBackground(new Color(205,209,235)); 
      } 
     } 
     return null; 
    } 

} 

我嘗試設置它像這樣:

class WorksheetTable extends JTable implements EEObjectSource, EEObjectTarget { 
    public WorksheetTable(WorksheetTableModel model) { 
     super(model); 
     setTableHeader(new EditableJTableHeader(getColumnModel())); 
    } 
    @Override 
    public void createDefaultColumnsFromModel() { 
     super.createDefaultColumnsFromModel(); 
     setTableHeader(new EditableJTableHeader(getColumnModel())); 
     getTableHeader().setToolTipText("Double Click to Edit, Right Click for more options"); 
     for (int i=0; i<getColumnCount(); i++) { 
      getColumnModel().getColumn(i).setPreferredWidth(150); 
      getColumnModel().getColumn(i).setWidth(150); 
      getColumnModel().getColumn(i).setHeaderRenderer(new myHeaderRenderer()); 
     } 

我得到運行時空指針時,表第一次繪製...缺少一些愚蠢的東西..

回答

2

您可以繼續使用JTable:

jTable.getColumModel().getColumn(columnIndex).setHeaderRenderer() 

而且您可以提供自己的單元格渲染器來渲染標題。

+0

有一個相關示例[here](http://stackoverflow.com/a/7137801/230513)。 – trashgod 2012-03-10 14:49:31

相關問題