2013-09-27 3 views
0

테이블에 통화를 표시하려면 다음 DefaultTableCellRenderer을 사용하고 있습니다. 그것도 잘 작동, 내가 가진 유일한 문제는,이 렌더러를 설정 한 열의 숫자가 왼쪽 정렬, 다른 모든 것이 올바르게 정렬됩니다. 이유를 알고 싶습니다.JTable 셀의 정렬

public class DecimalFormatRenderer extends DefaultTableCellRenderer { 

public static final DecimalFormat formatter = new DecimalFormat("#.00"); 

@Override 
public Component getTableCellRendererComponent(
     JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
    value = formatter.format((Number) value); 
    return super.getTableCellRendererComponent(
      table, value, isSelected, hasFocus, row, column); 
}  
} 

답변

2

번호를 렌더링하는 JTable에 의해 사용되는 디폴트의 셀 렌더링은, 당신은 기본적으로 JLabel.LEADING을 사용하는 것입니다 렌더링

static class NumberRenderer extends DefaultTableCellRenderer.UIResource { 
    public NumberRenderer() { 
     super(); 
     setHorizontalAlignment(JLabel.RIGHT); 
    } 
} 

는 (A JLabel에 기초) ... JLabel.RIGHT에의 그것은 수평 정렬을 설정합니다.

당신이 생성자의 수평 정렬을 설정하려면 렌더러를 변경하는 경우, 그것은 당신이 가고 싶은 곳으로 정렬해야합니다 ... 완벽한

public class DecimalFormatRenderer extends DefaultTableCellRenderer { 

    //... 

    public DecimalFormatRenderer() { 
     super(); 
     setHorizontalAlignment(JLabel.RIGHT); 
    } 

    //... 
} 
+0

, 감사합니다. –