2013-09-27 4 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.RIGHT ...

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

Вы предоставляете будет использовать JLabel.LEADING по умолчанию (основываясь на JLabel).

Если вы измените визуализатор, чтобы установить выравнивание по горизонтали в конструкторе, он должен выравнивать куда вы хотите идти ...

public class DecimalFormatRenderer extends DefaultTableCellRenderer { 

    //... 

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

    //... 
} 
+0

Отлично, спасибо. –

Смежные вопросы