wsm
Dezembro 11, 2012, 1:10am
#1
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);
wsm
Dezembro 11, 2012, 11:13am
#3
Fiz isso, mas mesmo assim não está passando
cembjr
Dezembro 11, 2012, 1:14pm
#4
Como você preenche sua tabela com os dados?
wsm
Dezembro 11, 2012, 1:48pm
#5
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;
}
cembjr
Dezembro 11, 2012, 2:33pm
#6
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.
wsm
Dezembro 11, 2012, 2:57pm
#7
Eu to conseguindo pegar o codigo, problema ta na hora de passar pro outro jframe.
cembjr
Dezembro 11, 2012, 3:02pm
#8
a tá, tenta passar a lista como parametro no construtor dele, dai é só pegar os dados!
cembjr
Dezembro 11, 2012, 3:04pm
#9
O seu método obterVeiculo() tá retornando todos os dados certos né?
Passa a o objeto Veiculo, melhor!
wsm
Dezembro 11, 2012, 3:19pm
#10
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]
cembjr
Dezembro 11, 2012, 3:31pm
#11
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());