Estou tentando fazer funcionar o BeansBinding com JFormatedTextField, mas estou tendo problemas, ao carregar os dados de um determinado objeto, pois o objeto é passado antes que o componente set a mascara, assim quando o netbeans chama o initComponents ele seta uma mascara para o formatedTextField, fazendo com que ele perca o valor ja passado anteriormente, como eu faço para resolver este problema?
Binding + JFormattedTextField no Netbeans
1 Resposta
Eu resolvi fazendo o binding com a propriedade TEXT… e nao VALUE do jformatted…
Também tive que adicionar um converter…
Segue o código do converter, que recebe como parâmetro a formatação que se usa no JFormatted.
Funciona perfeitamente… Deixei o converter com BigDecimal pois não uso Double ou Float no banco de dados, sempre uso Numeric ou Decimal.
Se ainda lhe houver dúvidas posso até criar um mini projeto no netbeans e passar o link para download.
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.ParseException;
import org.jdesktop.beansbinding.Converter;
/**
*
* @author rogerio
*/
public class BigDecimalConverter extends Converter<BigDecimal, String> {
private DecimalFormat format;
private BigDecimal defaultValue = null;
public BigDecimalConverter() {
this.format = new DecimalFormat();
this.format.setRoundingMode(RoundingMode.HALF_EVEN);
this.format.setParseBigDecimal(true);
}
public BigDecimalConverter(String decimalFormat) {
this.format = new DecimalFormat(decimalFormat);
this.format.setRoundingMode(RoundingMode.HALF_EVEN);
this.format.setParseBigDecimal(true);
}
@Override
public String convertForward(BigDecimal value) {
return format.format(value.doubleValue());
}
@Override
public BigDecimal convertReverse(String value) {
BigDecimal data = defaultValue;
try {
return data = BigDecimal.valueOf( format.parse(value).doubleValue() );
} catch (ParseException ex) {
data = defaultValue;
}
return data;
}
public void setFormat(DecimalFormat format) {
this.format = format;
}
public DecimalFormat getFormat() {
return format;
}
public BigDecimal getDefaultValue() {
return defaultValue;
}
public void setDefaultValue(BigDecimal defaultValue) {
this.defaultValue = defaultValue;
}
}
Criado 16 de dezembro de 2011
Ultima resposta 3 de out. de 2012
Respostas 1
Participantes 2
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Ontologias e Web Semantica: Do conceito a aplicacao Por Ivam Galvao Filho — Casa do Codigo