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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar