Pegar valor de um jtable e passar para um jframe

12 respostas
L

Pessoal,tenho um jtable mostrando uma lista de clientes,como faço para quando selecionar uma celula no jtable,abra um frame com os dados do cliente referente ao que selecionei no jtable?Eu ja consegui pegar o valor do jtable,só não sei como passar esse valor para o jframe,alguem pode me dar uma ajuda?

12 Respostas

C

entao voce cria um variavel para pegar o nome da pessoa e depois ve como pode passar isso para o frame…
exemplo…

String codSelecionado;
codSelecionado = (String)sua_tabela.getValueAt(sua_tabela.getSelectedRow(), 0);
//neste exemplo ele pega o valor da primeira coluna..... qualquer coisa e so alterar o 0 para a coluna desejada.

agora ve como voce pode passar esse valor para o frame…
uma dica… se for passar esse valor para carregar um frame com os dados do cliente eu
particularmente prefiro mas em abas…

L

Cara, no construtor do seu JFrame você pode definir um parâmetro e passar o valor ao instanciá-lo.

//classe onde é definido o parâmetro
import javax.swing.*;

public class Janela extends JFrame {
private String dadoCliente;

public Janela(String dadoCliente) {
this.dadoCliente = dadoCliente;
}

/* ... */
}

//no evento click do JTable
JFrame frame = new Janela((String)sua_tabela.getValueAt(sua_tabela.getSelectedRow(), 0));
frame.setVisible(true);

Se precisar passar mais valores, crie e preencha um objeto Cliente e o passe como parâmetro…

L

Link_pg,não tem como eu armazenar em uma variavel e depois passar para outra variavel no jframe não?

L

up

L

Alguem pode ajudar ?

F

Também estou com a mesma dúvida…
Alguém pode nos ajudar?
Obrigado…

R

Também estou com a mesma duvida, quero selecionar uma linha na tabela A, depois tem um botão “editar” que chama um outro Jframe, porém não estou conseguindo pegar os dados da Jtable!

R

Boa noite gurizada, consegui simplificar o problema da seguinte maneira:

public void edita2(){ if(tbClientes2.getSelectedRow() != -1){ editaclientes = new Clientes(); // editaclientes é o form onde faço a edição dos dados selecionados editaclientes.setVisible(true); editaclientes.tfCodigo.setText(listclientes.get(tbClientes2.getSelectedRow()).getCodigo().toString()); editaclientes.tfBairro.setText(listclientes.get(tbClientes2.getSelectedRow()).getBairro()); editaclientes.tfNome.setText(listclientes.get(tbClientes2.getSelectedRow()).getNome()); editaclientes.tfCep.setText(listclientes.get(tbClientes2.getSelectedRow()).getCep()); editaclientes.tfCidade.setText(listclientes.get(tbClientes2.getSelectedRow()).getCidade()); editaclientes.tfEndereco.setText(listclientes.get(tbClientes2.getSelectedRow()).getEndereco()); editaclientes.tfTelefone.setText(listclientes.get(tbClientes2.getSelectedRow()).getTelefone()); editaclientes.tfUF.setText(listclientes.get(tbClientes2.getSelectedRow()).getUF()); editaclientes.tfDataEmprestimo.setText(listclientes.get(tbClientes2.getSelectedRow()).getData_emprestimo()); editaclientes.tfNascimento.setText(listclientes.get(tbClientes2.getSelectedRow()).getData_nascimento()); editaclientes.tfNumBeneficio.setText(listclientes.get(tbClientes2.getSelectedRow()).getNumbeneficio()); editaclientes.tfSalario.setText(listclientes.get(tbClientes2.getSelectedRow()).getSalario()); editaclientes.tfCpf.setText(listclientes.get(tbClientes2.getSelectedRow()).getCpf()); editaclientes.tfNum.setText(listclientes.get(tbClientes2.getSelectedRow()).getNum()); editaclientes.tfRg.setText(listclientes.get(tbClientes2.getSelectedRow()).getRg()); editaclientes.tfTipoBeneficio.setText(listclientes.get(tbClientes2.getSelectedRow()).getTipobeneficio()); mini(); // desabilitarCampos(); }
Assim ele envia os dados do registro selecionado na tabela para o form de edição

C

rafaezandinha, Cara sou um iniciante em Java e queria saber neste seu código o que seria Clientes(); linha 3. E se for o nome da classe que você esta implementando o método, porque quando tento fazer parecido eu import a Classe e sempre da erro. Melhor Perguntando que import’s preciso adicionar, desde de já valeu!!!

public void EditarAlterar(){ if (jTLocalizarCliente.getSelectedRow() != -1) { CadastroCliente = new TabelaCliente(); // Cadastro Cliente é onde quero fazer a edição dos meus dados CadastroCliente.setVisible(true); CadastroCliente.jTextFieldNome.setText(Cliente.get(jTLocalizarCliente.getSelectedRow()).getNome()); } }

C

Vai a Dica, consegui desta maneira… Valeu Rafaezandinha.

public void EditarAlterar() { /* * Valeu Rafaezandinha a partir do seu exemplo consegui com o seguinte procedimento: * Deixando os jTextField's, JCombos e jTextField's e todos os compomentes que irei usar do CadastroCliente, personalizando o seu código para public * Em seguida usei o código abaixo, estou usando o NetBaens IDE 6.9.1 pois tenha mais facilidade. */ if (jTLocalizarCliente.getSelectedRow() != -1) { CadastroCliente cc = new CadastroCliente(); // Cadastro Cliente é onde quero fazer a edição dos meus dados cc.setVisible(true); cc.jTextFieldNome.setText(Cliente.get(jTLocalizarCliente.getSelectedRow()).getNome()); cc.jFormattedTextFieldCpf.setText(Cliente.get(jTLocalizarCliente.getSelectedRow()).getCPF()); cc.jTextFieldEndereco.setText(Cliente.get(jTLocalizarCliente.getSelectedRow()).getEndereco()); cc.jTextFieldBairro.setText(Cliente.get(jTLocalizarCliente.getSelectedRow()).getBairro()); cc.jFormattedTextFieldTelefone.setText(Cliente.get(jTLocalizarCliente.getSelectedRow()).getTelefone()); cc.jFemMasc.setSelectedItem(Cliente.get(jTLocalizarCliente.getSelectedRow()).getSexo()); cc.jTextAreaOBS.setText(Cliente.get(jTLocalizarCliente.getSelectedRow()).getObs()); } }

V

Tópico movido para o fórum de interface gráfica.

V

Esse post tem um exemplo funcional:
http://www.guj.com.br/java/55710-jdialog-devolvendo-valor-pra-jinternalframe#292687

O post é antigo, mas já que foi ressucitado, a dica ainda vale: Não use DefaultTableModel.
Ele é a principal causa do aquecimento global. Sempre que você usa um dia se perde no calendário Maia.

Criado 8 de outubro de 2009
Ultima resposta 25 de mai. de 2012
Respostas 12
Participantes 7