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.
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!
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();
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
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!!
[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…
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!!!