panox 0 Denunciar post Postado Agosto 23, 2010 Olá, estou fazendo uma consulta que funciona da seguinte maneira : A partir de um JFrame principal, eu chamo um novo Frame para a pesquisa do cliente da seguinte maneira : private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { PesquisaClientePedido pcp = new PesquisaClientePedido(); pcp.setVisible(true); //this.setVisible(false); } Já no outro Frame, após realizar a consulta, ele manda os resultados para uma JList, e após dar um duplo clique no item desejado(Nome do cliente nesse caso), ele pega o valor e retorna para um textfield do Frame anterior. O meu problema é que não estou conseguindo faze-lo sem abrir uma nova instância do Frame, alguem saberia me dizer a melhor maneira de recuperar estes dados ? Abraços, Enrico. Compartilhar este post Link para o post Compartilhar em outros sites
Giovanni Ritchie 0 Denunciar post Postado Agosto 23, 2010 <_< No seu outro tópico eu expliquei como chamar um dps voltar p anterior sem criar novas instancias, usando a mesma lógica você pode criar um método p setar o valor no textField e chamar quando estiver fechando o pesquisa de cliente link: http://forum.imasters.com.br/index.php?/topic/406177-alterar-o-defaultcloseoperation-de-um-jframe/ Abraço :D Compartilhar este post Link para o post Compartilhar em outros sites
panox 0 Denunciar post Postado Agosto 24, 2010 Desculpe pelo tópico desnecessário Giovanni, eu não pensei que o anterior pudesse me ajudar neste caso também. Mas ainda estou tendo um problema na lógica de tudo para fazer o método para recuperar valores no textField do frame principal. Dessa vez estou usando ambos frames como você descreveu no tópico anterior. FramePrincipal(Chamando o frameSecundario): private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { PesquisaClientePedido pcp = new PesquisaClientePedido(CadastroPedido.this); pcp.setVisible(true); setVisible(false); } FrameSecundario: public class PesquisaClientePedido extends javax.swing.JFrame { private JFrame parent; public PesquisaClientePedido(JFrame p) { initComponents(); this.parent = p; } public PesquisaClientePedido() { initComponents(); } //Fechando o frame e voltando para o principal sem criar uma nova instancia private void formWindowClosing(java.awt.event.WindowEvent evt) { parent.setVisible(true); dispose(); } //Evento de DblClick na list, que deveria levar os dados para o framePrincipal private void ltClientesMouseClicked(java.awt.event.MouseEvent evt) { //evento com clique duplo if(evt.getClickCount() == 2){ String nomeCliente = this.ltClientes.getSelectedValue().toString(); Clientes c = new Clientes(); c.consultaClientesPedido(nomeCliente); String codigoCliente = c.rsCodigoCliente.toString(); //CadastroPedido cp = new CadastroPedido(); this.setVisible(false); //cp.CompletaCliente(nomeCliente, codigoCliente); parent.setVisible(true); //Os comentarios acima indicam o jeito que estou fazendo com instancia. } } Apenas não entendi como acessar os objetos do framePrincipal pelo frameSecundario, ja que parent. nao me tras nenhum dos objetos do principal. Desde ja, obrigado pela atenção Abraços. ^_^ Compartilhar este post Link para o post Compartilhar em outros sites
Giovanni Ritchie 0 Denunciar post Postado Agosto 24, 2010 Então, ja tamos quase la, imagine que o componente que você deseja atualizar do frame princial é "nomeField" do tipo JTextField, você só precisa disponibilizar um set no frame principal mais ou menos assim: public FramePrincipal extends JFrame { // outros atributos private JTextField nomeField; public FramePrincipal() { // construtor } // o metodo set que sera utilizado p colocar os dados no campo public void setNomeFiled(String conteudo) { nomeField.setText(conteudo); } } agora no frame PesquisaClientePedido usando parent você faz o seguinte: public class PesquisaClientePedido extends javax.swing.JFrame { private JFrame parent; public PesquisaClientePedido(JFrame p) { initComponents(); this.parent = p; } public PesquisaClientePedido() { initComponents(); } //Evento de DblClick na list, que deveria levar os dados para o framePrincipal private void ltClientesMouseClicked(java.awt.event.MouseEvent evt) { //evento com clique duplo if(evt.getClickCount() == 2){ // retirei parte do código só p focar no principal a alterar // antes de chamar o frame anterior FramePricinpal frame = (FramePrincipal)parent; frame.setNomeField(CONTEUDO_AQUI); // atribui la o valor desejado ao campo frame.setVisible(true); // agora torna ele visivel } } É isso aí... qlqr coisa é só postar.. t+ http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
panox 0 Denunciar post Postado Agosto 24, 2010 Pô, muito obrigado mesmo giovanni, funcionou direitinho...a respeito do método que você utilizou, eu tinha um identico, mas precisava da instancia para usá-lo public void CompletaCliente(String nome, String codigo){ txCodigoCliente.setText(codigo); txNomeCliente.setText(nome); } Muito obrigado pela ajuda. Grande abraço Compartilhar este post Link para o post Compartilhar em outros sites