Boa tarde pessoal,
Vamos a duvida, tenho uma jtable e nela tenho campos em double, blz ta tudo formatadinho bonitinho,
Estou usando para formatar este codigo:
NumberFormat numeroFormatado = NumberFormat.getCurrencyInstance();
numeroFormatado.format(((Double)value).doubleValue())
Bom o meu problema é o seguinte, ele esta deixando eu colcoar um valor do tipo “12.21111111111” e isto não pode acontecer, queria um formato de duas casas decimais depois da virgula e nada mais :S
Será que alguem pode ajudar nesta ?
Cara você chegou a dar uma pesquisada no fórum?!
Dá uma olhada nesse tópico:
http://www.guj.com.br/posts/preList/119040/699886.java#699886
Então já tentei fazer umas mascaras e tal mais n ta funcionando, é que isto fica dentro de uma celula de um Jtable
olha a classe que faz isto
class DoubleRenderer extends DefaultTableCellRenderer {
NumberFormat format = DecimalFormat.getCurrencyInstance(new Locale("pt","BR"));
public DoubleRenderer() {
setHorizontalAlignment(LEFT);
}
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected,
hasFocus, row, column);
format.setMinimumFractionDigits(2);
setText(format.format(((Double)value).doubleValue()));
return this;
}
}
Tipo assim quando eu aperto por exemplo Tab e vou para a proxima celula da minha tabela e ela tem um numero 12,00, eu começo a digitar e ele começa a incrementar no final do numero tipo 12,00123456789, gostaria de bloquear isto de alguma forma !!
Alguma ideia ? pa as mascaras não estão funcionando !
Não seria setMaximumFractionDigits ao invés de Minimum?
Outra opção é não usar NumberFormat, e sim um regex para validar.