2012-03-23 3 views
5

특정 테이블 헤더의 배경색을 변경하고 싶습니다. 내 appliaction에서 나는 이번 달에 헤더 색상 레드를 설정해야합니다. enter image description here 내 코드는 여기에 ::특정 테이블 헤더 색상 자바 스윙

 jTable1.getTableHeader(). 
    setDefaultRenderer(
    new DefaultTableHeaderCellRenderer()); 



    @Override 
    public Component getTableCellRendererComponent(JTable table, Object value, 
      boolean isSelected, boolean hasFocus, int row, int column) { 
    super.getTableCellRendererComponent(table, value, 
      isSelected, hasFocus, row, column); 
    JTableHeader tableHeader = table.getTableHeader(); 

    if(column==1) 
    tableHeader.setBackground(Color.red); 


    return this; 
    } 

이 모든 헤더 색상의 빨간색을합니다. 제발 좀 제안 해줘. 미리 감사드립니다.

답변

6

당신은 배경 색상 항상 설정

  • 에이 :-)하는 DefaultTableCellRenderer의 악명 높은 색 메모리 : 그 정상 및 강조 표시 상태 모두입니다
  • 그렇게 전에 슈퍼
를 호출 할

뭔가 같은 :

@Override 
    public Component getTableCellRendererComponent(JTable table, 
     Object value, boolean isSelected, boolean hasFocus, int row, 
     int column) { 
     if (myHighlightCondition) { 
      setBackground(Color.RED); 
     } else { 
      setBackground(null); 
     } 
    super.getTableCellRendererComponent(table, value, isSelected, hasFocus, 
      row, column); 
    return this; 
    } 

자세한 내용은 (이유가 필요한 이유는) How do I correctly use custom renderers to paint specific cells in a JTable?

+0

+1이 대답과 연결된 답변을 참조하십시오. 이제는 다음에 테이블로 작업 할 때 시간 낭비를 피하기 위해 기억해야 할 가치가 있습니다. – Robin

+0

감사합니다. kleopatra – Aritra