Criando a interface e o evento Componentshow, não funciona

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();
}