jDialog retornando valor para um jTextField de um jInternalFrame que fez a chamada do mesmo

4 respostas
leoarborges

Estou com esse problema.

Eu tenho um jInternalFrame que eu preciso relacionar um Pais num jTextField no cadastro de um Estado qualquer nesse jInternalFrame.

1 - Quando eu clico em cima do campo vazio no InternalFrame fiz a chamada de um jDialog que tem a lista dos Paises, vou selecionar esse pais clicando em cima do que eu quero, numa jTable com os Paises no caso;

2 - Selecionado o Pais na lista eu clico no jButton que chamo o método que eu criei no jDialog segue o código do meu get:

public String getSiglaPais(){
        String siglaPais = JTablePais.getValueAt(JTablePais.getSelectedRow(), 0).toString();
        return siglaPais;
    }

3 - Ao executar o jButton eu chamo getSiglaPais(); e dou um this.hide(); para fechar esse jDialog que abriu na no meu jInternalFrame para selecionar o Pais;
4 - No meu jInternalFrame eu quero atribuir o valor para meu campo jTextField mas não consigo. Como eu faço ? Me ajudem por favor…

Método somente para chamar o jDialog:

void chamaJDPais (){
            JDPais jdp = new JDPais(null, rootPaneCheckingEnabled);
            jdp.setVisible(true);
            
        }

Ação quando eu clico em no jTextField no meu jInternalFrame e ele é vazio e chama o jDialog para a seleção do Pais

private void JTFPaisMouseClicked(java.awt.event.MouseEvent evt) {
        String validaCampoPais = JTFPais.getText(); // Pega o valor do campo JTFPais para a validação abaixo
        JDPais jdp1 =  new JDPais(null, closable);
        String receber = "";
        if ("".equals(validaCampoPais)){
        chamaJDPais();
        receber = jdp1.retornSiglaPais();
        
                                        }
        JTFPais.setText(receber);
        
    }

Obrigado a todos que me ajudarem…

4 Respostas

R

boa tarde.
sua implementação está indo bem. o que vc precisa é de criar um atributo de classe no seu JDialog, para que quando vc selecionar o Pais vc setar o valor nesse atribudo.

no seu código ja tem uma chamada ao método retornSiglaPais.
crie o atributo no seu dialog com os set e get para funcionar.

leoarborges

Como eu implemento esses métodos na classe?
Minha dúvida é o que vou setar, pois o valor que eu desejo pegar na minha tabela de Pais é somente a primeira coluna que possui a sigla:

JTablePais.getValueAt(JTablePais.getSelectedRow(), 0).toString();

R

bem, vc cria um atributo normall

Private String retorno;

//set e get..

dai vc popula esse atributo com o retorno da sua coluna especifica da sua tabela.

após preencher na classe onde chamou o dialog vc usa o atributo para consultar.

jdp.setVisible(true);
//aki você terá o retorno  jdp.getRetorno();
leoarborges

Muito obrigado, é orientação simples. O exemplo ficou bem mais claro pra minha implementação.
Assim que ficar pronto posto aqui como fiz.

Criado 1 de setembro de 2012
Ultima resposta 7 de set. de 2012
Respostas 4
Participantes 2