Clicar linha em tabela e preencher jtextfileds de jframe

Estou com o seguinte problema, no jframe tenho um botão que chama um dialog com uma tabela de consulta e gostaria de clicar em uma linha da tabela e prrencher os jtextfield do jframe para poder fazer alteração, não estou conseguindo passar os dados para o jframe como posso fazer isso. Fiz assim mas não ta passando pro outro jframe[code]private void tabelaMouseClicked(java.awt.event.MouseEvent evt) {
try {
int indiceView = tabela.getSelectedRow();
int indiceModel = sorter.convertRowIndexToModel(indiceView);

    String[] linha = this.model.getValueAt(indiceModel);  
    Integer codigo = Integer.parseInt(linha[0]);       
    
    DAOVeiculo dao = new DAOVeiculo();  
    Veiculo v = dao.obterVeiculo(codigo);   
      
    FormVeiculo fv;  
    fc = new FormVeiculo();  
      
    fc.getTxtCodigo().setText(v.getCodigo().toString());          
    fc.getTxtModelo().setText(v.getModelo());  
    fc.getTxtAno().setText(v.getAno().toString());  
    fc.getTxtCor().setText(v.getCor());  
    fc.getTxtPlaca().setText(v.getPlaca());  
    fc.getComboComb().setSelectedItem(v.getCombustivel());  
    fc.getTxtRenavam().setText(v.getRenavam());  
    fc.getTxtChassi().setText(v.getChassi());                 

} catch (Exception ex) {
Logger.getLogger(NewJDialog.class.getName()).log(Level.SEVERE, null, ex);
}
} [/code]

é importante que o campo de texto que vc esta tentando mandar o conteudo esteja como.:

public static volatile javax.swing.JTextField tf_meuCampoTexto;

Pq senão, não irá receber valores de outro formulario.
Vamos supor que eu precise mandar de uma frame chamado ‘teste’ pra um frame chamado ‘TESTE_2’.

String teste = "abc";
TESTE_2.tf_meuCampoTexto.setText(teste);

Fiz isso, mas mesmo assim não está passando

Como você preenche sua tabela com os dados?

Com um ArrayList, segue codigo public ArrayList obterVeiculos() { ArrayList dados = new ArrayList(); try { Connection con = Conexao.obterCon(); PreparedStatement psmt = con.prepareStatement("SELECT * FROM veiculo"); ResultSet rs = psmt.executeQuery(); while (rs.next()) { Veiculo v = new Veiculo(); v.setCodigo(rs.getInt("cod_vei")); v.setModelo(rs.getString("modelo")); v.setAno(rs.getInt("ano")); v.setCor(rs.getString("cor")); v.setPlaca(rs.getString("placa")); v.setCombustivel(rs.getString("combustivel")); v.setRenavam(rs.getString("renavam")); v.setChassi(rs.getString("chassi")); String[] linha = {v.getCodigo().toString(), v.getModelo(),v.getAno().toString(),v.getCor(),v.getPlaca(),v.getCombustivel(),v.getRenavam(),v.getChassi()}; dados.add(linha); } con.close(); } catch (Exception e) { e.printStackTrace(); } return dados; }

Tenta assim:

[code] Integer codigo = Integer.parseInt(lista.get(jTable1.getSelectRow()).getId()); // pegando o id selecionado a partir da lista

    DAOVeiculo dao = new DAOVeiculo();    
    Veiculo v = dao.obterVeiculo(codigo);  // buscando com o id selecionado

[/code]

Se entendi direito o seu código isso deve funcionar.

Eu to conseguindo pegar o codigo, problema ta na hora de passar pro outro jframe.

a tá, tenta passar a lista como parametro no construtor dele, dai é só pegar os dados!

O seu método obterVeiculo() tá retornando todos os dados certos né?
Passa a o objeto Veiculo, melhor!

To fazendo isso, passando assim

[code]private void tabelaMouseClicked(java.awt.event.MouseEvent evt) {
try {
int indiceView = tabela.getSelectedRow();
int indiceModel = sorter.convertRowIndexToModel(indiceView);

    String[] linha = this.model.getValueAt(indiceModel);
    Integer codigo = Integer.parseInt(linha[0]); 
    Veiculo v = dc.obterVeiculo(codigo); 
    
    FormVeiculo fv;
    fv = new FormVeiculo();
    
    fv.txtCodigo.setText(v.getCodigo().toString());       
    fv.txtModelo.setText(v.getModelo());
    fv.txtAno.setText(v.getAno().toString());
    fv.txtCor.setText(v.getCor());
    fv.txtPlaca.setText(v.getPlaca());
    fv.comboComb.setSelectedItem(v.getCombustivel());
    fv.txtRenavam.setText(v.getRenavam());
    fv.txtChassi.setText(v.getChassi());        

} catch (Exception ex) {
Logger.getLogger(NewJDialog.class.getName()).log(Level.SEVERE, null, ex);
}

}[/code]

Tenta assim

[code]Veiculo v = dc.obterVeiculo(codigo);

    FormVeiculo fv;  
    fv = new FormVeiculo(v);  [/code]

Dai no construtor do FormVeiculo você coloca a Classe Veiculo como parametro.

Esse trecho você muda e coloca no FormVeiculo

getTxtCodigo().setText(v.getCodigo().toString()); getTxtModelo().setText(v.getModelo()); getTxtAno().setText(v.getAno().toString()); getTxtCor().setText(v.getCor()); getTxtPlaca().setText(v.getPlaca()); getComboComb().setSelectedItem(v.getCombustivel()); getTxtRenavam().setText(v.getRenavam()); getTxtChassi().setText(v.getChassi());