Estou tendo problemas com um jTable, gostaria que quando o usuario clica-se em uma linha da tabela e em seguida clica-se em um botão que o valor contido na linha e coluna fosse transferido para o formulario que chamou a jTable.
E aí galera… respondendo a pergunta dele vcs estão respondendo a minha tb… to com a mesma duvida… um amigo meu disse que naum tem como fazer isso no java… mas se tiver eu gostaria de saber…
Bom tem jeito sim, isso e logico… e o seguinte se a JANELA que vc abre com o jTable e modal fassa o seguite, crie dentro dela uma função chamada por exemplo getCodigo() o exemplo abaixo deve ajudar
String Codigo;
frmTabela frm = new frmTabela();
frmTabela.show(true); //Janela Modal aguardando a entrada do Usuario
Codigo = frmTabela.getCodigo(); //não de dispose na classe antes de pegar o valor aqui
frmTabela.dispose(); //Bom aqui ja pode
//Rotinas que fazem o tratamento de codigo
Bom dentro do formulario frmTabela simplismente pegue o valor contido na Tabela e guarde ele numa variavel que vc pega com a função getCodigo(). não sei se ajudei mais e isso ai !!!
Vamos lá diagamos que o FormCliente Chama o Dialog Consulta abaixo segue o Codigo do formulario frmCliente:
public class frmCliente extends JFrame {
public frmClients() {
//Metodos de Criação da interface e etc ... etc ...
}
//Digamos que vc tenha um Botao Consultar
private void cmdConsultaClick(java.awt.event.MouseEvent evt) {
frmConsulta consulta = new frmConsulta();
String escolha;
consulta.show(true) //true estou definindo essa janela como modal, ou seja o codigo abaixo não vai ser executado ate que a janela consulta seja fechada.
escolha=consulta.getEscolha();
if(!escolha="") { //verifica se a consulta retornada e vazia
//dentro do if va faz a consulta ou oque vc deseja fazer com o retorno do formulario consulta
}
//aqui vc tira o formulario consulta da memoria
consulta.dispose();
}
}
}
Codigo do Formulario consulta
public class frmConsulta extends JDialog {
//Variavel publica para guardar a escolha
private String escolha = "";
public frmConsulta() {
//Metodos de Criação da interface e etc ... etc ...
}
//Sua função para pegar o valor do jTable
private void Clik(java.awt.event.MouseEvent evt) {
int Retorno;
Retorno = jTable1.getSelectedRow();
Vector Recebe_v = (Vector)gridRows.get(Retorno);
this.escolha = (String)Recebe_v.get(0);
}
//Função public para ser acessada de outra classe, para então retornar o valor de escolha
public String getEscolha() {
return this.escolha;
}
}
A unica coisa que vc tem de prestar atenção e que vc não pode dar dispose dentro da sua classe Consulta pq senão vc perdera referencia, O codigo acima esta grande pq estou tentando te passar, passo a passo mais pode ser bem reduzido, a função getEscolha retorna uma String poderia retornar um Vetor delas ou um Vetor de Objetos.
Eu estou utilizando jInternalFrame, com o dispose o jInternalFrame não abre, e se tiro na volta da consulta o glass6 nao fecha ai não tenho acesso aos campos.
Então e por isso, o seguinte pela outra janela(a de consulta) tb ser un JInternalFrame ela simplismente não espera seu usuario fecha-la para proseguir na linha seguinte abaixo sua chamada, por isso todo esse problema,os JDialogs esperam ate que seu usuario tome uma atitude feche a janela, para então proseguir. dá pra fazer com JInternalFrames so que fica mais dificil com JDialogs fica bem mais facil… em casa ejo se encontro uma solução legal com JInternalFrames e posto aqui falow … mais se vc extender sua classe de consulta a JDialog e setala como modal ja irá resolver seu problema…