Se já tem uma janela sendo exibida, não é ela que está sendo usada. Vc passa para uma nova janela: new frm_Cliente().
Se vc quer usar uma janela que já foi exibida, guarde-a numa variável:
E depois só use essa variável, sem dar new dentro do método novamente:
Outra coisa. Acostume-se a dar nomes de classes com letra maiúscula, como manda a convenção de código do Java.
J
jgsilva
Bom, infelizmente ainda não consegui resolver, coloquei um trecho de código onde tenho que fazer a mesma coisa.
Primeiro eu abro um frame onde tem um campo JTextField e um JLabel com um botão de pesquisa do lado, clico no botão, e então abre outro frame que contém esse método de evento abaixo:
private void selecionaDados(java.awt.event.MouseEvent evt) {
int linha = tbl_grid.getSelectedRow();//Pega a linha clicada
try {
conexao.AbrirConexao();
String sql = "SELECT * FROM loc_genero WHERE gen_in_codigo = '"+tbl_grid.getValueAt(linha, 0)+"'";
conexao.stmt = conexao.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
conexao.rs = conexao.stmt.executeQuery(sql);
conexao.rs.next();
String codigo = conexao.rs.getString("gen_in_codigo");
String nomeGenero = conexao.rs.getString("gen_st_nome");
//Captura o duplo click
if ((evt.getClickCount() == 2) && (evt.getButton() == MouseEvent.BUTTON1)) {
frm_filme filme = new frm_filme();
filme.procuraGenero(codigo, nomeGenero);
dispose(); //método que fecha o Frame.
}
lbl_codigo.setText(conexao.rs.getString("gen_in_codigo"));
txt_nome.setText(conexao.rs.getString("gen_st_nome"));
} catch (SQLException e) {
conexao.FecharConexao();
e.printStackTrace();
}
}
dentro do if no método acima eu passo os parâmetros para o método abaixo:
public void procuraGenero(String codigo, String nomeGenero){
txt_filmeGenero.setText(codigo);
lbl_codigoGenero.setText(nomeGenero);
}
no entanto, ainda não está setando o codigo na JLabel e o nomeGenero na JTextField,
será que existe algo de errado com o código e eu não estou percebendo?