Como passar o conteudo JTextField de um JFrame para outro JTextField em outro JFrame

11/11/2009

0

1 - Tenho uma tela TFornecedor que é um Jframe, com um campo Jtextfield chamado de campoEstado que recebe a digitação do Estado exemplo RS.

2 - Quando digito e texto eu tenho uma ação no momento de teclar <enter>, e ele faz uma consulta, abre uma outra janela, que é um Jframe chamado TEstadoConsulta, o qual carrega  uma tabela contendo os estados cadastrados, feita a seleção da sigla do estado ele deve retornar o valor para o jtextfield do primeiro JFrame que é TFornecedor.

3 - Andei pesquisando na Internet e não obtive umas respostas claras, parece que tem uma solução atraves do método construtor das classes, tentei fazer mas quando
     retorno do segundo JFrame TEstadoConsulta para o primeiro JFrame TFornecedor , os outros campos que estavão preenchidos voltam a ficar em branco, inviabilizando esta solução.

     Desde já agradeço a atenção.
Lucio Dias

Lucio Dias

Responder

Posts

12/11/2009

Dyego Carmo

Voce tentou passar de parametro o componente do JTextField no construtor do segundo formulario...

E quando selecionar voce muda diretamente , chegou a tentar esta solucao ?

Responder

12/11/2009

Lucio Dias

Bom dia Dyego,

Muito obrigado pela sua atenção, seu que esta minha duvida é algo simples, porém não estou conseguindo  resolver o problema sozinho, o metodo construtor do 1o. JFrame e este:

//--- Metodo construtor ---\\
    public TFornecedor(Object valorRecebido){
        this.valorR=(String) valorRecebido;
        initComponents();
        campoEstado.getText(valorR);
       
    }

Até aqui tudo bem, o problema é que os demais campos do form, ficão todos em branco, porque tenho que instanciar a classe TFornecedor no JFrame2 para retornar o valor para o JtextField.

O metodo que passa o valor para o JFrame1 é este:

 //--- carrega Item da tabela ---\\
    private void carregaItem(){       
        int linha = jTableEstado.getSelectedRow();
        varEstado=(String) jTableEstado.getValueAt(linha , 0);
        varNomeEstado=(String) jTableEstado.getValueAt(linha , 1);
        this.dispose(); // fecha a janela do 1o. Jframe (TEstadoConsulta)
        TFornecedor tf1 = new TFornecedor(); // Instancio a classe chamando o 1o. Jframe (TFornecedor)
        tf1.recebeEstado1(varEstado);  // Passo o valor da sigla do estado para o metodo construtor do 1o. JFrame.
    }


* Obs: Estou percebendo o seguinte, como instâncio a classe novamente, ela tem de ser executada com o initcomponents(); e com isso os outros campos que estavam preenchidos voltam a ficar em branco, na realidade eu não consigo voltar para o JFrame1 original, pois quando eu instancio a classe no metodo acima é como se eu chamasse outro novo.


               EXEMPLO:


                 JFrame1 (TFornecedor) com os campos preenchidos                        
              
                 campoFornecedor - "FULANO DE TAL"
                 campoCidade - "PORTO ALEGRE"
                 campoEstado - "<teclo enter>" para instancial  o segundo jframe, e apresentar a tabela.
                    
                 TEstadoConsulta te = new TEstadoConsulta(); 
                  te.setVisible(true);
                
                 = = = = = = = = = == = = = = = =

                JFrame2 (TEstadoConsulta) Selecionando o item

                 jTableEstado - Seleciono o item que quero ex: "RS"
                 varEstado = recebe o item da tabela ex: "RS"
                 this.dispose(); // fecho o Jframe2 (TEstadoConsulta)
                   
                  Voltando com o valor, Instancio a classe do 1o. JFrame               
                 TFornecedor tf = new TFornecedor(varEstado);  // Ok passei o valor para o construtor do Jframe1
                  tf.setVisible(true);

                 = = = = = = = = = = =
                 Agora
                 Nesse Momento em que o JFrame1 é reapresentado, os outros campos estão todos em branco.

                = = = = = = = = = = = = =

                Espero ter consegui descrever o meu problema.

                    
                 












Responder

12/11/2009

Lucio Dias

Dyego, corrigindo o  metodo construtor correto é este:

 //--- Metodo construtor ---\\
    public TFornecedor(Object valorRecebido){
        this.valorR=(String) valorRecebido;
        initComponents();

        campoEstado.setText(valorR);  ---> correto
}
Responder

18/11/2009

Dyego Carmo

Ai que está , voce esta passando o VALOR do objeto , nao passe o VALOR... passe o OBJETO INTEIRO... e lah dentro voce seta o valor , entendeu ?

Valeu !

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar