JDialog devolvendo Valor pra JInternalFrame

tenho um jinternalframe de cadastro, no qual tem um botão de consulta, que consulta registros cadastrados. quando este botão é clicado ele abre um jdialog o qual exibe um jtable com os registros, qdo eu dou um duplo clique em um registro, eu quero que volte ao jinternalframe e coloque os valores nos seus devidos campos, para uma edição!

capturar o duplo clique e pegar os valores da linha tah tudo certo, o problema tah sendo passar os valores do jdialog pro jinternalframe.

Alguém pode me dar um ajudar??

Obrigado!

Ao invés de pensar em “comunicação entre janelas”, tente pensar em “comunicação entre objetos”…

Bom, não ajudou muito… mas vou tentar pensar…

Quando o usuario da o duplo clique vc provavelmente fecha o JWindow certo? Então antes disto cria um método para capturar estes dados dentro do JDialog e manda para ele…

bom, ao dar um duplo clique eu obtenho os dados da linha do jtable e guardo em 2 variaveis… mas como passar essas duas variaveis devolta para o jinternalframe? sendo que são classes separadas!!!

Opa, estava aqui pensando… quando vc diz comunicação entre objetos, existe um tipo de objeto global? que eu possa acessa-lo de onde estiver?

Pq aqui no meu caso, por exemplo, tenho 2 classes, tipo TelaJInternalFrame.java e telaJDialog.java apartir do jinternalframe eu chamo o jdialog, como eu me comunicaria entre os objetos de cada classe? você poderia me dar um exemplo bem simples… nem precisa usar swing… mas só exemplificar essa comunicação!

Vlwz

Fuja do GLOBAL!!!

Quando você faz um JDialog, você cria um filho de JDialog, certo?
Então, porque não colocar lá simplesmente um método que retorne o valor?

public class DialogQueTemOValorQueQueroRetornar extends JDialog
{
     private int valorSelecionado = 0;
     //Aqui vai a parte que você montar a interface gráfica.

    public int getValorSelecionado() {
        return valorSelecionado;
    }
}

Depois no seu JInternalPane simplesmente faça:

DialogQueTemOValorQueQueroRetornar dlg = new DialogQueTemOValorQueQueroRetornar();
dlg.setModal(true);
dlg.setVisible(true);
int selecionadoNoDialog = dlg.getValorSelecionado();
2 curtidas

Oi.

Elaborei um exemplo simples em anexo.

Preste atenção no método onAlterar da classe FrmInformacao.
Depois veja o que fiz no JDialog.

Note que eu poderia fazer o mesmo para Dialog e JFrame.

E, ao invés de fazer retornar campo a campo como eu fiz ali, eu poderia fazer a Dialog instanciar e preencher uma nova classe e retonar um objeto só.

2 curtidas

bom…

nesse dialog vc tem uma table né?
entao, na table vc tem seus objetos adicionados nela certo? (ou vc está criando arrays de string pra colocar nela?)

se fossem campos textfield, na hora do “ok”, vc instanciava o objeto em questao (que o dialog representa), passava os valores pra ele, e criava um metodo no dialog q retornasse esse objeto…

mas como vc tem uma table, e na table ja estao adicionados os objetos, vc pega o objeto selecionado na table e retorna ele no método :wink:

[quote=ViniGodoy]Oi.

Elaborei um exemplo simples em anexo.

Preste atenção no método onAlterar da classe FrmInformacao.
Depois veja o que fiz no JDialog.

Note que eu poderia fazer o mesmo para Dialog e JFrame.

E, ao invés de fazer retornar campo a campo como eu fiz ali, eu poderia fazer a Dialog instanciar e preencher uma nova classe e retonar um objeto só.[/quote]

Perfeito, entendi como funciona… funcionou certinho aqui, mas o mais importante é entender o que está sendo feito, e deu pra entender tranquilo…

Mais uma vez muito obrigado fera!!! e muito obrigado aos outros também!!

T+

ViniGodoy
Obrigado, pelo exemplo!!!

Tentei acessar rodar o Método Main, mas ele nao encontra acha o FrmInformacao.java

[b]ola fabim eu so tenho um jtable comun , sem nada…mas quero receber um objeto por exemplo MEDICOS no meu JDialog
e de acordo com esse objeto eu alterar as colunas do JTable…

valeu[/b]

Ola amigos estou com uma dúvida, eu tenho dois JinternalFrame com nomes:
frame01: que chama o frame02

e no frame02 , tenho um jtable com dados, gostaria de clicar no jtable do frame02
ele fechar e o frame01 receber os dados.

Alguem sabe como fazer?

Valeu

[quote=ViniGodoy]Oi.

Elaborei um exemplo simples em anexo.

Preste atenção no método onAlterar da classe FrmInformacao.
Depois veja o que fiz no JDialog.

Note que eu poderia fazer o mesmo para Dialog e JFrame.

E, ao invés de fazer retornar campo a campo como eu fiz ali, eu poderia fazer a Dialog instanciar e preencher uma nova classe e retonar um objeto só.[/quote]

Vini, fiz estou tentando fazer com um JText setando uma variavel de uma Combobox(populada com MySQL) de outra classe, mas não seta nada. Detalhe, tentei criar uma nova pra test e sem estar conectada ao MySQL, mas só retorna o primeiro da lista da JCombo e não a que foi selecionada. Já tentei muita coisa, mas não seta mesmo. Se puder me ajudar… Obg!!!

Por um momento, pensei estar passando por um déjà vu.