Boas pessoal!
bom sou novo no forum, e também iniciante em java.
A minha duvida é, supomos que eu tenho JFrame aberto e neste JFrame abro uma conexão com o banco na inicializacão…
O que gostaria de saber é sê: Quando executo o metodo dispose(); ele fecha a conexão com o banco, ou mantém a conexão ativa?
apreveitando, vi um esquema de executar um metodo quando JFrame for dado dispose(); , porém não sei aonde coloca-lo.
Agradeço desde já, abaixo vai meu codigo se alguem puder me informar aonde colocar e o codigo, ficaria muito grato mesmo.
import java.sql.*;
import classes.md5;
import classes.conexaoMysql;
import javax.swing.JOptionPane;
public class telaLogin extends javax.swing.JFrame {
conexaoMysql con_usuario;
public telaLogin() {
initComponents();
con_usuario = new conexaoMysql();
con_usuario.conecta();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
tfUsuario = new javax.swing.JTextField();
pfSenha = new javax.swing.JPasswordField();
L_Usuario = new javax.swing.JLabel();
L_Senha = new javax.swing.JLabel();
L_Logo = new javax.swing.JLabel();
bEntrar = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("GPA - Login");
setName("FrameLogin"); // NOI18N
setResizable(false);
L_Usuario.setText("Usuário");
L_Senha.setText("Senha");
L_Logo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/krfb.png"))); // NOI18N
bEntrar.setText("Entrar");
bEntrar.setFocusPainted(false);
bEntrar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bEntrarActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(L_Logo)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(L_Senha)
.addComponent(L_Usuario))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(bEntrar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(pfSenha, javax.swing.GroupLayout.DEFAULT_SIZE, 94, Short.MAX_VALUE)
.addComponent(tfUsuario))
.addContainerGap(24, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(23, 23, 23)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(L_Usuario)
.addComponent(tfUsuario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(pfSenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(L_Senha))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bEntrar))
.addComponent(L_Logo, javax.swing.GroupLayout.Alignment.TRAILING))
.addContainerGap())
);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-310)/2, (screenSize.height-180)/2, 310, 180);
}// </editor-fold>
private void bEntrarActionPerformed(java.awt.event.ActionEvent evt) {
if(tfUsuario.getText().trim().isEmpty() && pfSenha.getText().trim().isEmpty()) {
JOptionPane.showMessageDialog(null, "Preencha todos os campos!", "Campo Obrigatório", JOptionPane.ERROR_MESSAGE);
tfUsuario.setText("");
pfSenha.setText("");
tfUsuario.grabFocus();
} else {
if(tfUsuario.getText().trim().isEmpty()) {
JOptionPane.showMessageDialog(null, "Preencha o campo usuário!", "Campo Obrigatório", JOptionPane.ERROR_MESSAGE);
tfUsuario.setText("");
tfUsuario.grabFocus();
} else {
if(pfSenha.getText().trim().isEmpty()) {
JOptionPane.showMessageDialog(null, "Preencha o campo senha!", "Campo Obrigatório", JOptionPane.ERROR_MESSAGE);
pfSenha.setText("");
pfSenha.grabFocus();
} else {
try {
con_usuario.executeSQL("SELECT * from Usuarios WHERE usu_login='"+tfUsuario.getText()+"' AND usu_senha='"+md5.Converter(pfSenha.getText())+"'");
if(con_usuario.resultset.first()) {
new TelaPrincipal().show();
TelaPrincipal.tfUsuarioValor.setText(con_usuario.resultset.getString("usu_login"));
TelaPrincipal.tfNomeValor.setText(con_usuario.resultset.getString("usu_nome"));
con_usuario.desconecta();
dispose();
} else {
JOptionPane.showMessageDialog(null,"Usuário ou Senha invalida.");
tfUsuario.setText("");
pfSenha.setText("");
tfUsuario.grabFocus();
}
} catch(SQLException ErroSql){
JOptionPane.showMessageDialog(null, ErroSql, "Erro ao executar sql!",JOptionPane.ERROR_MESSAGE);
}
}
}
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new telaLogin().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel L_Logo;
private javax.swing.JLabel L_Senha;
private javax.swing.JLabel L_Usuario;
private javax.swing.JButton bEntrar;
private javax.swing.JPasswordField pfSenha;
private javax.swing.JTextField tfUsuario;
// End of variables declaration
}