Criei a classe abaixo, mas o evento componentshow não está funcionando, ou seja, não aparece o JOptionPane.
Estou conseguindo, realizar as operações dos botões, só que eu queria colocar algumas coisas no evento componentShow.
package utils;
import java.awt.Color;
import java.text.ParseException;
import javax.swing.*;
import java.awt.event.*;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import javax.swing.text.MaskFormatter;
public class Continentes extends JFrame implements ActionListener {
private JFrame jfr_Continente = new JFrame();
private JPanel jpn_Campos = new JPanel();
private JButton jbt_Botao1 = new JButton("Novo");
private JButton jbt_Botao2 = new JButton("Consultar");
private JButton jbt_Botao3 = new JButton("Sair");
private JTextField jtf_Codigo = new JTextField(5);
private JTextField jtf_Nome = new JTextField(30);
private JFormattedTextField jft_valor = new JFormattedTextField();
private JTable jtb_Continentes = new JTable();
private int vCodigo, retorno;
private String vNome, SQL, tipo_Botao;
java.util.Date data = null;
ResultSet resultado_RS;
Utils_Conexao conexao = new Utils_Conexao();
PreparedStatement pstm;
public void Continentes() {
jpn_Campos.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
jpn_Campos.setBackground(Color.cyan);
Box linha1 = Box.createHorizontalBox();
Box linha2 = Box.createHorizontalBox();
Box linha3 = Box.createHorizontalBox();
Box linha4 = Box.createHorizontalBox();
Box linha5 = Box.createHorizontalBox();
Box geral = Box.createVerticalBox();
JLabel lbl_Codigo = new JLabel("Código:");
JLabel lbl_Nome = new JLabel("Nome:");
JLabel lbl_Valor = new JLabel("FormattedTextField:");
try {
MaskFormatter mask = new MaskFormatter("(##)####-####");
jft_valor = new JFormattedTextField(mask);
} catch (ParseException ex) {
JOptionPane.showMessageDialog(null, "Erro na mascara", "Mensagens", JOptionPane.INFORMATION_MESSAGE);
}
jbt_Botao1.setMnemonic('N');
jbt_Botao1.setBackground(Color.BLUE);
jbt_Botao2.setMnemonic('C');
jbt_Botao2.setBackground(Color.GREEN);
jbt_Botao3.setMnemonic('S');
jbt_Botao3.setBackground(Color.RED);
linha1.add(lbl_Codigo);
linha1.add(jtf_Codigo);
linha2.add(lbl_Nome);
linha2.add(jtf_Nome);
linha3.add(lbl_Valor);
linha3.add(jft_valor);
linha4.add(jbt_Botao1);
linha4.add(jbt_Botao2);
linha4.add(jbt_Botao3);
linha5.add(jtb_Continentes);
geral.add(linha1);
geral.add(Box.createHorizontalStrut(25));
geral.add(linha2);
geral.add(Box.createHorizontalStrut(25));
geral.add(linha3);
geral.add(Box.createHorizontalStrut(25));
geral.add(linha4);
geral.add(Box.createHorizontalStrut(25));
geral.add(linha5);
geral.add(Box.createHorizontalStrut(25));
jpn_Campos.add(geral);
jfr_Continente.getContentPane().add(jpn_Campos);
jfr_Continente.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jfr_Continente.setTitle("Continentes");
jfr_Continente.setSize(600, 600);
jfr_Continente.setLocation(10,10);
jfr_Continente.setVisible(true);
jbt_Botao1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
jbt_Botao1ActionPerformed(e); } });
jbt_Botao2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
jbt_Botao2ActionPerformed(e); } });
jbt_Botao3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
jbt_Botao3ActionPerformed(e); } });
jfr_Continente.addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentShown(java.awt.event.ComponentEvent e) {
jfr_ContinenteformComponentShown(e); } });
}
private void jfr_ContinenteformComponentShown(ComponentEvent e) {
JOptionPane.showMessageDialog(null, "FormShow", "Mensagens", JOptionPane.INFORMATION_MESSAGE);
}
private void jbt_Botao1ActionPerformed(ActionEvent e) {
tipo_Botao = jbt_Botao1.getText();
testa_Operacao(tipo_Botao);
}
private void jbt_Botao2ActionPerformed(ActionEvent e) {
tipo_Botao = jbt_Botao1.getText();
testa_Operacao(tipo_Botao);
}
private void jbt_Botao3ActionPerformed(ActionEvent e) {
tipo_Botao = jbt_Botao1.getText();
testa_Operacao(tipo_Botao);
}
private void testa_Operacao(String Operacao) {
if (Operacao.equals("Novo")) {
adicionar_Dados();
}
if (Operacao.equals("Cancelar")) {
limpar_Dados();
jbt_Botao3.setText("Limpar");
jbt_Botao3.setEnabled(true);
}
if (Operacao.equals("Consultar")) {
prepara_Dados();
tipo_Botao = "Consulta_Estado";
}
if (Operacao.equals("Gravar") | Operacao.equals("Regravar")) {
gravar_Dados(Operacao);
limpar_Dados();
}
if (Operacao.equals("Excluir")) {
exclui_Dados();
}
if (Operacao.equals("Alterar")) {
altera_Dados();
}
if (Operacao.equals("Consulta_Estado")) {
consultar_Dados();
}
}
private void adicionar_Dados() {
try {
vCodigo = 0;
conexao.conecta_Utils();
SQL = "select max(CTN_CODIGO) from CONTINENTES";
pstm = conexao.con.prepareStatement(SQL);
resultado_RS = pstm.executeQuery();
if (resultado_RS.next()) {
vCodigo = (resultado_RS.getInt(1)+1);
} else {
vCodigo = 1;
}
habilitar_Campos();
jtf_Codigo.setText(Integer.toString(vCodigo));
jtf_Nome.setText("");
jtf_Codigo.setEnabled(false);
jbt_Botao1.setText("Gravar");
jbt_Botao2.setText("Cancelar");
jbt_Botao3.setEnabled(false);
} catch(Exception e){
JOptionPane.showMessageDialog(null, "Erro botão novo", "Mensagens", JOptionPane.INFORMATION_MESSAGE);
System.out.println(e.getMessage());
}
fecha_Conexoes();
}
private void gravar_Dados(String operac) {
try {
conexao.conecta_Utils();
vCodigo = Integer.parseInt(jtf_Codigo.getText());
vNome = jtf_Nome.getText();
if (operac.equals("Gravar")) {
SQL = "INSERT INTO CONTINENTES (CTN_NOME) values (?)";
pstm = conexao.con.prepareStatement(SQL);
pstm.setString(1, vNome);
} else {
SQL = "UPDATE CONTINENTES SET NOME = ? WHERE CTN_CODIGO = ?";
pstm = conexao.con.prepareStatement(SQL);
pstm.setString(1, vNome);
pstm.setInt(2, vCodigo);
}
retorno = pstm.executeUpdate();
if (retorno == 1) {
JOptionPane.showMessageDialog(null, "Dados gravados com sucesso", "Mensagens", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Não possível gravar os dados", "Mensagens", JOptionPane.INFORMATION_MESSAGE);
}
} catch(Exception e){
JOptionPane.showMessageDialog(null, "Erro ao gravar os dados", "Mensagens", JOptionPane.INFORMATION_MESSAGE);
}
fecha_Conexoes();
}
private void consultar_Dados() {
try {
conexao.conecta_Utils();
vCodigo = Integer.parseInt(jtf_Codigo.getText());
SQL = "SELECT * FROM CONTINENTES WHERE CTN_CODIGO = ?";
pstm = conexao.con.prepareStatement(SQL);
pstm.setInt(1, vCodigo);
resultado_RS = pstm.executeQuery();
if (resultado_RS.next()) {
jtf_Nome.setText(resultado_RS.getString("CTN_NOME"));
} else {
JOptionPane.showMessageDialog(null, "Continente existe", "Mensagens", JOptionPane.INFORMATION_MESSAGE);
limpar_Dados();
desabilitar_Campos();
}
} catch(Exception e){
JOptionPane.showMessageDialog(null, "Erro na consulta", "Mensagens", JOptionPane.INFORMATION_MESSAGE);
System.out.println(e.getMessage());
}
fecha_Conexoes();
}
private void exclui_Dados() {
try {
conexao.conecta_Utils();
vCodigo = Integer.parseInt(jtf_Codigo.getText());
int confirma = JOptionPane.showConfirmDialog(null,"Confirma Exclusão?","Sim",0);
if (confirma == 0){
SQL = "DELETE FROM CONTINENTES WHERE CTN_CODIGO = ?";
pstm = conexao.con.prepareStatement(SQL);
pstm.setInt(1, vCodigo);
resultado_RS = pstm.executeQuery();
retorno = pstm.executeUpdate();
if (retorno == 1) {
JOptionPane.showMessageDialog(null, "Dados gravados com sucesso.", "Mensagens", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Não possível gravar os dados.", "Mensagens", JOptionPane.INFORMATION_MESSAGE);
}
}
limpar_Dados();
} catch(Exception e){
JOptionPane.showMessageDialog(null, "Erro aqui", "Mensagens", JOptionPane.INFORMATION_MESSAGE);
System.out.println(e.getMessage());
}
fecha_Conexoes();
}
private void altera_Dados() {
habilitar_Campos();
jbt_Botao1.setText("Regravar");
jbt_Botao2.setText("Cancelar");
jbt_Botao3.setVisible(false);
}
private void limpar_Dados() {
jtf_Codigo.setText("");
jtf_Nome.setText("");
jbt_Botao1.setText("Novo");
jbt_Botao2.setText("Consultar");
jbt_Botao3.setText("Limpar");
desabilitar_Campos();
}
private void habilitar_Campos() {
jtf_Nome.setEnabled(true);
}
private void prepara_Dados() {
jtf_Codigo.setEnabled(true);
jtf_Nome.setEnabled(false);
}
private void desabilitar_Campos() {
jtf_Codigo.setEnabled(false);
jtf_Nome.setEnabled(false);
}
private void fecha_Conexoes() {
try {
resultado_RS.close();
pstm.close();
conexao.desconecta_Utils();
} catch(Exception e){
JOptionPane.showMessageDialog(null, "Erro ao fechar as conexões", "Mensagens", JOptionPane.INFORMATION_MESSAGE);
System.out.println(e.getMessage());
}
}
public void actionPerformed(ActionEvent e) {
}
}
No menu, que chama a Classe Continentes:
public void actionPerformed(ActionEvent e) {
Continentes mContinente = new Continentes();
mContinente.Continentes();
}