Estou desenvolvendo ma aplicação java para desktop em que coloquei um campo de texto JFormattedTextField em que gostaria que ficasse formatado no formatado da moeda brasileira , mas ao digitar no campo ele ão formata os números que digitei.
Como era pra ficar meu campo.
Mas como fica o campo ao digitar um valor qualquer.
Procura por JNumberField, é um componente pronto para trabalhar com valores monetários!
Simples e prático de utilizar, bem melhor que o campo formatado!
Existem N componentes, eu utilizo mais o JNumberField que mandei acima e o JCalendar que trás componentes para trabalhar com datas, o que evita muita reinvenção da roda para validar datas!
Tem um outro componente que utilizo no trabalho que é pra design de layouts, dando ao software uma cara mais amigável pra interagir com o usuário, da a possibilade de trabalhar com menu hamburguer deslizante, definição de temas e etc.
É só procurar pela net que vai encontrar diversos componentes externos que foram criados para facilitar a nossa vida.
Eu adicionei o jar do JNumber Field , mas ele não formata meu campo, ao digitar no campo Preço insento ele não formata em valor monetário olha como fica o valor digitado
Estou tentanto formatar assim quando carrega os componentes ao carregar a aplicação eu aplico isso.
public Cadastro_Produtos() {
initComponents();
Codigo();
adicionaCombo();
JNumberField formatar= new JNumberField();
formatar.setText(txtPreco.getText());
}
Você fez errado, está usando ele como dependência, o JNumberField é um componente!
Você deve adicionar ele na sua paleta de componentes para utilza-lo!
Feito isso basta arrastar para o frame igual aos outros componentes nativos.
Consegui colocar obrigado, outra duvida por exemplo quero salvar o valor do campo do Jnumber no banco de dados, ele vai reconhecer como string devido os caracter especial, a virgula e o R$
Tem como eu pegar só o numero do campo Jnumber e salvar ele no banco de dados como double ?
Na verdade o campo trabalha com BigDecimal, o R$ é somente uma máscara!
Você pode recuperar o valor dele como BigDecimal da seguinte forma: jnumberfield.getValue();
E como double: jnumberfield.getValue().doubleValue();