Eu fiz uma aplicação com duas telas, uma de cadastro e outra de que mostra o consumo do cliente.
Na tela cadastro tem um botão “consumo”, onde pode ser feita a pesquisa do que o cliente consumiu, mas eu quero jogar esses dados em outra tela dentro de um JLabel.
Eu fiz… mas ele não mostra as informações.
Botão consumo
[code]private void BT_PesqConsumoMouseClicked(java.awt.event.MouseEvent evt) {
if (TF_Pesquisa.getText().isEmpty()){
JOptionPane.showMessageDialog(null, “Digite o CPF para efutar a consulta.”);
}
else if(TF_Pesquisa.getText() != null){
try {
String comando = "select nome,cpf,codbarras"
+ " FROM cliente WHERE cpf ='" +TF_Pesquisa.getText()+ "'";
PreparedStatement prep = con_Cadastro.conexao.prepareStatement(comando);
//esse retornaConexao está tratando da conexão com o bd.
ResultSet rs = prep.executeQuery();
if(rs.next()){
//rs.next();
//se for Varchar ou char usa rs.getString
String Nome = rs.getString("nome");
int Cpf = rs.getInt("cpf");
int Codbarras = rs.getInt("codbarras");
Consumo valor = new Consumo();
valor.alterText( String.valueOf(Nome) );
valor.alterText( String.valueOf(Cpf) );
valor.alterText( String.valueOf(Codbarras) );
Consumo ir = new Consumo();
ir.setVisible(true);
dispose();
}
else{
JOptionPane.showMessageDialog(null, "Cliente não encontrado!");
}
} catch (SQLException e){
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
}
}[/code]
Classe que devia setar os dados.
public void alterText(String textoLabel ) // passa uma String
{
LB_Nom.setText(textoLabel);
LB_Cpf.setText(textoLabel);
LB_Codi.setText(textoLabel);
}
Bom… eu alterei assim (tentando usar os parametros). Mas não continua sem mostrar…
Botão Pesquisar Consumo na classe Cadastro
[code] private void BT_PesqConsumoMouseClicked(java.awt.event.MouseEvent evt) {
if (TF_Pesquisa.getText().isEmpty()){
JOptionPane.showMessageDialog(null, “Digite o CPF para efutar a consulta.”);
}
else if(TF_Pesquisa.getText() != null){
try {
String comando = "select nome,cpf,codbarras"
+ " FROM cliente WHERE cpf ='" +TF_Pesquisa.getText()+ "'";
PreparedStatement prep = con_Cadastro.conexao.prepareStatement(comando);
//esse retornaConexao está tratando da conexão com o bd.
ResultSet rs = prep.executeQuery();
if(rs.next()){
//rs.next();
//se for Varchar ou char usa rs.getString
String Nome = rs.getString("nome");
int Cpf = rs.getInt("cpf");
int Codbarras = rs.getInt("codbarras");
Consumo valor = new Consumo();
valor.alterText(Nome, Cpf, Codbarras);
Consumo ir = new Consumo();
ir.setVisible(true);
dispose();
}
else{
JOptionPane.showMessageDialog(null, "Cliente não encontrado!");
}
} catch (SQLException e){
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
}
}[/code]
E na classe Consumo
[code]public void alterText(String Nome, int Cpf, int Codbarras) // passa uma String
{
LB_Nom.setText(Nome);
LB_Cpf.setText(String.valueOf(Cpf));
LB_Codi.setText(String.valueOf(Codbarras));
lol … agora sim fiquei sem entender nada. Mandei ele me dar um println, não é possivel ele não armazenar os dados.
E ae que está a coisa mais estranha… ele está armazenando sim. Ele printou os dados normais. @-@
[quote=Alix]Bom… eu alterei assim (tentando usar os parametros). Mas não continua sem mostrar…
Botão Pesquisar Consumo na classe Cadastro
[code] private void BT_PesqConsumoMouseClicked(java.awt.event.MouseEvent evt) {
if (TF_Pesquisa.getText().isEmpty()){
JOptionPane.showMessageDialog(null, “Digite o CPF para efutar a consulta.”);
}
else if(TF_Pesquisa.getText() != null){
try {
String comando = "select nome,cpf,codbarras"
+ " FROM cliente WHERE cpf ='" +TF_Pesquisa.getText()+ "'";
PreparedStatement prep = con_Cadastro.conexao.prepareStatement(comando);
//esse retornaConexao está tratando da conexão com o bd.
ResultSet rs = prep.executeQuery();
if(rs.next()){
//rs.next();
//se for Varchar ou char usa rs.getString
String Nome = rs.getString("nome");
int Cpf = rs.getInt("cpf");
int Codbarras = rs.getInt("codbarras");
Consumo valor = new Consumo();
valor.alterText(Nome, Cpf, Codbarras);
Consumo ir = new Consumo();
ir.setVisible(true);
dispose();
}
else{
JOptionPane.showMessageDialog(null, "Cliente não encontrado!");
}
} catch (SQLException e){
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
}
}[/code]
E na classe Consumo
[code]public void alterText(String Nome, int Cpf, int Codbarras) // passa uma String
{
LB_Nom.setText(Nome);
LB_Cpf.setText(String.valueOf(Cpf));
LB_Codi.setText(String.valueOf(Codbarras));
}[/code][/quote]
É como o colega Andersonrms disse, é provável que o problema esteja na instanciação de 2 Telas de Consumo, na tela de Consumo valor você altera o texto dos JLabels, mas não manda visualizar a tela, e então cria outra tela Consumo ir e sem alterar os JLabels você exibe a tela, logo não vai apresentar nada.
Ou não é isso?