show è deprecato... meglio non chiamarlo con programmi nuovi (funziona lo stesso, ma solo per motivi di retro compatibilità)

codice:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class dueJDialog extends JFrame implements ActionListener {
  
  public void actionPerformed (ActionEvent ae) {
    miaJDialog primaJDialog = new miaJDialog(this, "Prima JDialog", true);    
  }
  
  private class miaJDialog extends JDialog implements ActionListener {
    
    
    JButton secondaJDialog = new JButton("Apri JDialog 2");
    
    public miaJDialog(JFrame owner, String title, boolean modal) {
      super(owner, title, modal);
      this.setSize(300, 300);
      this.getContentPane().add(secondaJDialog);
      secondaJDialog.addActionListener(this);
      this.setVisible(true);      
    }
    
    public void actionPerformed (ActionEvent ae) {
      System.out.println("Apertura Seconda JDialog");
      miaSecondaJDialog dialog = new miaSecondaJDialog((JFrame)this.getParent(), "Seconda JDialog", true);      
    }
    
    
    
    private class miaSecondaJDialog extends JDialog implements ActionListener {
      
      
      public void actionPerformed (ActionEvent ae) {
        System.out.println("Chiusura Seconda JDialog");
        this.setVisible(false);
      }
      
      public miaSecondaJDialog(JFrame owner, String title, boolean modal) {
        super(owner, title, modal);
        this.setSize(200, 300);
        JButton chiudi = new JButton("Chiudi");
        this.getContentPane().add(chiudi);
        chiudi.addActionListener(this);
        this.setVisible(true);
        
      }      
    }    
  }
  
  public dueJDialog() {
    super("Demo 2 JDialog");
    this.setSize(500, 500);
    JButton apri = new JButton("Apri prima JDialog");
    this.getContentPane().add(apri);
    apri.addActionListener(this);
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  
  public static void main (String[] args) {
    dueJDialog d = new dueJDialog();
  }
}
Questo crea due JDialog. La seconda blocca la prima la quale a sua volta blocca il JFrame.