Boa tarde, eu to usando JPA para adicionar dados ao banco… porem eu tenhu um campo do tipo numeri no banco de dados que gostaria que fosse assim quando eu gravasse 20,23 ou 2000,23 porem quando eu eu gravo ele vai para a JTable da seguinte foirma 20 ou 2000 ele tira a virgula, pontos e a 2 ultimo valor … mais c eu altero no banco ele traz para a JTable correto…
alguem sabe com fazer isso???
vlwww
Voce podria utilizar
ou
Pois ja trazem esta implementação que voce deseja,caso contrario veja se o tipo da classe de sua coluna esta Integer caso sim, troque-a pra Float, veja se resolve…
Att…
cara a coluna estava como BigDecimal ai mudei para float e ainda continua com o problema
Veja se o seu valor esta vindo do banco com ou sem virgula.
Caso esteja com virgula,crie um metodo que recebe este valor e converte pra um tipo Float.
Um exemplo tosco, com DefaultTableModel so pra testar se havia erro.
DefaultTableModel d = (DefaultTableModel) jTable1.getModel();
d.setRowCount(0);
d.addRow(new Object[]{new Float("12.3")});
E com minha jTable1 com apenas uma coluna, faz este teste ai…
Att…
então cara olha so se eu alterar no banco colocando ponto e as ultima casa decimal ele leva pa JTable certim 2.300,23 por exemplo… mais para a JFormattedTextField ja leva assim 2300,23 e para grava direto da aplicação c eu digitar assim 2.300,23 ele passa pa JTbale assim 2300 e sucessivamente para o banco tambem assim…
eu to usando um formulario mestre detalhe e meus campos estao vinculados com a JTable…
vlwww
Mas precisamente o link da ObjectTableModel que tenho na sign.
Talvez voce esteja fazendo alguma conta errada da aplicação para jTable. Talvez voce usa algum int e da problemas assim.
cara não to usando int
Mostra o código… fica dificil ajudar sem nada.
vcs conhece alguma biblioteca para trabalhar com esse tpo de valores sem ser o Maskformmatter?
[vlww
MaskFormmatter é ulilizado para o JFormmatedTextField. Mas talvez esse não seja o erro.
Voce não pode postar o código?
posso sim vo postar o codigo assim que eu chegar em casa… num to com ele aqui…
vlww cara
Se eu não me engano, quando você seta um novo TableModel o JTable cria um DefaultColumnModel novamente, portanto você teria que refazer o ColumnModel cada vez que resetar o TableModel.
Olha so a parte do Bean do Cliente
@Column(name = "renda_cliente")
private Float rendaCliente;
public Float getRendaCliente() {
return rendaCliente;
}
public void setRendaCliente(Float rendaCliente) {
Float oldRendaCliente = this.rendaCliente;
this.rendaCliente = rendaCliente;
changeSupport.firePropertyChange("rendaCliente", oldRendaCliente, rendaCliente);
}
agora a parte onde esta a JTable que é gerado automatico
masterTable = new javax.swing.JTable();
masterTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
masterTable.setDoubleBuffered(true);
org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, list, masterTable);
org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${nomeCliente}"));
columnBinding.setColumnName("Nome");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${cpfCliente}"));
columnBinding.setColumnName("CPF");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${rgCliente}"));
columnBinding.setColumnName("RG");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${orgaoRgCliente}"));
columnBinding.setColumnName("Órgão Expedidor");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${nascimentoCliente}"));
columnBinding.setColumnName("Nascimento");
columnBinding.setColumnClass(java.util.Date.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${desdeCliente}"));
columnBinding.setColumnName("Cliente Desde");
columnBinding.setColumnClass(java.util.Date.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${profissaoCliente}"));
columnBinding.setColumnName("Profissão");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${empresaCliente}"));
columnBinding.setColumnName("Empresa do Cliente");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${foneEmpresa}"));
columnBinding.setColumnName("Telefone da Empresa");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${rendaCliente}"));
columnBinding.setColumnName("Renda do Cliente");
columnBinding.setColumnClass(Float.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${tipoCliente}"));
columnBinding.setColumnName("Tipo");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${cnpjCliente}"));
columnBinding.setColumnName("CNPJ");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${referenciaCliente}"));
columnBinding.setColumnName("Referência");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${foneReferencia}"));
columnBinding.setColumnName("Telefone Referência");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${email}"));
columnBinding.setColumnName("E-mail");
columnBinding.setColumnClass(String.class);
bindingGroup.addBinding(jTableBinding);
jTableBinding.bind();
masterScrollPane.setViewportView(masterTable);
masterTable.getColumnModel().getColumn(0).setMinWidth(400);
masterTable.getColumnModel().getColumn(0).setPreferredWidth(400);
masterTable.getColumnModel().getColumn(0).setMaxWidth(400);
masterTable.getColumnModel().getColumn(1).setPreferredWidth(150);
vlwwwww