JTextField e JTable não sincronisam

3 respostas
wpellegrini

Estou criando uma aplicação no Netbeans 6.8, os primeiros forms estou usando o assistente do Netbeans, onde informo qual o banco e a master table que quero utilizar. Mas tentei criar um form manual sem o assistente, tudo funcionou perfeito, so ficando pendente um item.

quando crio o form usando o assistente, e executo a apalicação , ao digitar no JTextField ele automaticamente insere essa digitação na Jtable ( master table ) um sincronismo perfeito. Mas ao criar manualmente ele não esta, sincronisando, efetuando essa açao de autopreenchimento , eu digito no JtextField mas ele não mosta na Jtable so quando eu fecho e abro a aplicação que aparece o que eu salvei no banco de Dados.

Será que é alguma propriedade que preciso alterar?

Já Busquei em varios foruns e não obtive resposta alguem aqui poderia me ajudar.

3 Respostas

V

E ai cara, de uma pesquisa sobre biding, é isso que ele utiliza para este sincronismo

http://cld.blog-city.com/tutorial__netbeans_6_and_binding_beans_and_data_in_a_deskto.htm

danielso2007

Usando o netbeans 6.9.1, você pode vincular o JtextField ao elemento do JTable.
Faça assim:

  • No component JTextField, vá em “vincular” -> “Text”;

  • Na aba “Vinculação”, Selecione a sua JTable em: “Origem da vinculação”. Em “Expressão de vinculação”, selecione o “selectedElement”, nele irá aparecer todos o campos da sua JTable. Selecione qual elemento você quer vincular.

Pronto, agora ao digitar os dados na JTetField, o Jtable irá atualizar automaticamente.

O código gerado pelo Netbeans:

bindingGroup = new org.jdesktop.beansbinding.BindingGroup();


samplePUEntityManager = java.beans.Beans.isDesignTime() 
        ? null 
        : javax.persistence.Persistence.createEntityManagerFactory("samplePU").createEntityManager();

customerQuery = java.beans.Beans.isDesignTime() ? null : samplePUEntityManager.createQuery("SELECT c FROM Customer c");
customerList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : customerQuery.getResultList();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jTextField1 = new javax.swing.JTextField();

 org.jdesktop.swingbinding.JTableBinding jTableBinding =   
        org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, customerList, jTable1);

org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = 
        jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${creditLimit}"));

columnBinding.setColumnName("Credit Limit");
columnBinding.setColumnClass(Integer.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${email}"));
columnBinding.setColumnName("Email");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${fax}"));
columnBinding.setColumnName("Fax");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${phone}"));
columnBinding.setColumnName("Phone");
columnBinding.setColumnClass(String.class);


bindingGroup.addBinding(jTableBinding);
jTableBinding.bind();



org.jdesktop.beansbinding.Binding binding = 
        org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTable1,  
                org.jdesktop.beansbinding.ELProperty.create("${selectedElement.fax}"), jTextField1, org.jdesktop.beansbinding.BeanProperty.create("text"));

bindingGroup.addBinding(binding);


bindingGroup.bind();
wpellegrini

Valeu!!! consegui resolver

Criado 30 de outubro de 2010
Ultima resposta 31 de out. de 2010
Respostas 3
Participantes 3