BigDecimal em JTable

1 resposta
C

pessoal como eu jogo um campo BigDecimal em uma JTable e depois formatar a coluna para ###,##0.00 ???

1 Resposta

L

olá Marcelo, há duas opções nesse caso... formatar antes de lançar ou construir algo na sua classe cell renderer que irá formatar estes valores.
Costumo formatar na cell renderer. Para isso faço da seguinte forma:
Dento do switch das colunas, na coluna respectiva ao BigDecimal coloco label.setText(Formatter.formatBigDecimal((BigDecimal) valor));

e na classe formater faz o seguinte:

public static String formatBigDecimal(BigDecimal value, String mask) {
        // Para documentação da máscara: http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html 
        if (value == null) return "";
        try {
            mask = mask.replace(".", ";").replace(",", ".").replace(";", ",") ;
            NumberFormatter formatter = new NumberFormatter(new DecimalFormat(mask));
            return formatter.valueToString(value);
        } catch (ParseException ex) {
            ex.printStackTrace();
            throw new RuntimeException(ex);
        }
    }

    public static String formatBigDecimal(BigDecimal value) {
        return formatBigDecimal(value, "###.###.###.##0,00");
    }

Desta forma na apresentação do valor, este ficará como string mesmo, só que na VO associada esta certinho como BigDecimal.
Atenciosamente.
Alcides Liberali

Criado 17 de agosto de 2007
Ultima resposta 17 de ago. de 2007
Respostas 1
Participantes 2