Boa tarde. Eu estou fazendo um sistema CRUD para fazer cadastro de pessoas dentro de um clube utilizando JFrame + PostgreSQL. Só gostaria saber que alternativas eu poderia ter de mostrar uma mensagem para confirmação de exclusão ou cadastro de uma nova pessoa. Não sei se o jeito certo é criar um novo JFrame para isto, JOptionPane ou algo do tipo. O código está logo abaixo:
package VISUAL;
import DAO.ConectaBD;
import java.sql.*;
import javax.swing.JOptionPane;
import net.proteanit.sql.DbUtils; //Import do rs2xml.jar
public class frmCadUsuarios extends javax.swing.JInternalFrame {
Connection conecta;
PreparedStatement pst;
ResultSet rs;
public frmCadUsuarios() throws ClassNotFoundException {
initComponents();
this.setLocation(330, 100);
conecta = ConectaBD.conectabd(); //Conectar com o banco de dados
listarDesbravadores(); //Inicializar lista
}
public void listarDesbravadores() {
String sql = "Select * from usuarios order by codigo Asc";
try {
pst = conecta.prepareStatement(sql);
rs = pst.executeQuery();
tblDesbravadores.setModel(DbUtils.resultSetToTableModel(rs));
}
catch(SQLException error) {
JOptionPane.showMessageDialog(null, error);
}
}
public void cadastrarDesbravadores() {
String sql = "Insert into usuarios(nome, telefone, endereco) values (?,?,?)"; //? > Inserção dinâmica, sem saber o valor
try {
pst = conecta.prepareStatement(sql);
pst.setString(1, txtNome.getText());
pst.setString(2, txtTelefone.getText());
pst.setString(3, txtEndereco.getText());
pst.execute();//Manda executar
//Mensagem de informação
JOptionPane.showMessageDialog(null, "Desbravador cadastrado com sucesso!!!", "Confirmação", JOptionPane.INFORMATION_MESSAGE);
listarDesbravadores(); //Atualiza a janela com as informações dentro dela
}
catch(SQLException error) {
JOptionPane.showMessageDialog(null, error);
}
}
public void pesquisarDesbravadores() {
String sql = "Select * from usuarios where nome like ?";
try {
pst = conecta.prepareStatement(sql);
pst.setString(1, txtPesquisar.getText()+"%"); //Quando apagar, trazer as informações, usado com o like
rs = pst.executeQuery();
tblDesbravadores.setModel(DbUtils.resultSetToTableModel(rs));
}
catch(SQLException error) {
JOptionPane.showMessageDialog(null, error);
}
}
public void mostrarItens() {
int seleciona = tblDesbravadores.getSelectedRow();//Buscar valor que estiver selecionado
txtCodigo.setText(tblDesbravadores.getModel().getValueAt(seleciona, 0).toString());
txtNome.setText(tblDesbravadores.getModel().getValueAt(seleciona, 1).toString());
txtTelefone.setText(tblDesbravadores.getModel().getValueAt(seleciona, 2).toString());
txtEndereco.setText(tblDesbravadores.getModel().getValueAt(seleciona, 3).toString());
}
public void editarDesbravadores() {
String sql = "Update usuarios set nome = ?,telefone = ?, endereco = ? where codigo = ?";
try {
pst = conecta.prepareStatement(sql);
pst.setString(1, txtNome.getText());
pst.setString(2, txtTelefone.getText());
pst.setString(3, txtEndereco.getText());
pst.setInt(4, Integer.parseInt(txtCodigo.getText()));
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "Cadastro editado com sucesso!!!");
listarDesbravadores();
}
catch(SQLException error) {
JOptionPane.showMessageDialog(null, error);
}
}
public void deletarDesbravadores() {
String sql = "Delete from usuarios where codigo = ?";
try {
pst = conecta.prepareStatement(sql);
pst.setInt(1, Integer.parseInt(txtCodigo.getText()));
pst.execute();
listarDesbravadores();
}
catch(SQLException error) {
JOptionPane.showMessageDialog(null, error);
}
}
public void limparCampos() { //Limpar as caixas
txtCodigo.setText("");
txtNome.setText("");
txtTelefone.setText("");
txtEndereco.setText("");
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
tblDesbravadores = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
txtCodigo = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
txtNome = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
txtTelefone = new javax.swing.JFormattedTextField();
jLabel4 = new javax.swing.JLabel();
txtEndereco = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
txtPesquisar = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
setClosable(true);
setIconifiable(true);
setTitle("Cadastro de Desbravadores");
tblDesbravadores.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
tblDesbravadores.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tblDesbravadoresMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tblDesbravadores);
jLabel1.setText("Código:");
txtCodigo.setBackground(new java.awt.Color(0, 0, 0));
txtCodigo.setEnabled(false);
jLabel2.setText("Nome:");
jLabel3.setText("Telefone:");
try {
txtTelefone.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("(##)####-####")));
} catch (java.text.ParseException ex) {
ex.printStackTrace();
}
jLabel4.setText("Endereço:");
jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ICONES/user-1.jpg"))); // NOI18N
jButton1.setText("Cadastrar");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ICONES/pencil.jpg"))); // NOI18N
jButton2.setText("Editar");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ICONES/document-1.jpg"))); // NOI18N
jButton3.setText("Deletar");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jButton4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ICONES/cancel.jpg"))); // NOI18N
jButton4.setText("Limpar");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
txtPesquisar.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
txtPesquisarKeyReleased(evt);
}
});
jLabel5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ICONES/cursor.jpg"))); // NOI18N
jLabel5.setText("Buscar");
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()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(txtCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(18, 18, 18)
.addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, 410, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtTelefone, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtEndereco)))
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(txtPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, 583, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel5)))
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jButton1, jButton2, jButton3, jButton4});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(txtCodigo, 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(jLabel2)
.addComponent(txtNome, 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(jLabel3)
.addComponent(txtTelefone, 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(jLabel4)
.addComponent(txtEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2)
.addComponent(jButton3)
.addComponent(jButton4))
.addContainerGap())
);
layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jButton1, jButton2, jButton3, jButton4});
layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jLabel5, txtPesquisar});
pack();
}// </editor-fold>
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
editarDesbravadores();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
cadastrarDesbravadores();
}
//Evento para quando começar a digitar
private void txtPesquisarKeyReleased(java.awt.event.KeyEvent evt) {
pesquisarDesbravadores();
}
private void tblDesbravadoresMouseClicked(java.awt.event.MouseEvent evt) {
mostrarItens();
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
limparCampos();
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
deletarDesbravadores();
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable tblDesbravadores;
private javax.swing.JTextField txtCodigo;
private javax.swing.JTextField txtEndereco;
private javax.swing.JTextField txtNome;
private javax.swing.JTextField txtPesquisar;
private javax.swing.JFormattedTextField txtTelefone;
// End of variables declaration
}