2010-03-04 6 views
0

프로그램에서 scrTbl이라는 JTable을 구현했으며 "up"이라는 외부 부울 변수를 기반으로이 테이블의 한 열에서 텍스트 색상을 변경할 수 있기를 바랍니다. 이 노력과 관련한 제 코드는 다음과 같습니다.Java JTable TableCellRenderer 문제

TableColumn tcol = scrTbl.getColumnModel().getColumn(9); 
tcol.setCellRenderer(new CustomTableCellRenderer()); 

public class CustomTableCellRenderer extends DefaultTableCellRenderer 
{ 
    @Override 
    public Component getTableCellRendererComponent (JTable table,  
    Object obj, boolean isSelected, boolean hasFocus, int row, int 
    column) 
    { 
     Component cell = super.getTableCellRendererComponent(table, 
      obj, isSelected, hasFocus, row, column); 

     if (up && (row == nmbrStocks)) 
     { 
      cell.setForeground(Color.green); 
     } 
     if ((!up) && (row == nmbrStocks)) 
     { 
      cell.setForeground(Color.red); 
     } 
     return cell; 
    }//Component 
} //class getTableCell... 

포인트까지의 값에 따라 칼럼 9, 녹색 또는 적색의 특정 행 (인덱스 nmbrStocks)을위한 텍스트 색상을 설정하는 것이다.

그러나 실행하면 모든 텍스트가 녹색으로 설정됩니다. 렌더러는 열 9의 셀이 기록 될 때마다 호출되거나 프로토콜은 무엇입니까?

미리 도움을 청하십시오. 당신은 하나의 열을 수정할 때문에

답변

0

, 당신의 열을 지정하는 코드뿐만 아니라 행을 조정

if (row == nmbrStocks && column == the_desired_column_you_wish_to_change) 
    { 
     if (up){ 
     cell.setForeground(Color.green); 
     }else{ 
     cell.setForeground(Color.red); 
     } 
    }