Crei una classe che estende JDialog. Ci metti i costruttori che t'interessano (e dalla prima riga di ogni costruttore chiami quello della superclasse), poi nei costruttori personalizzi come vuoi.
Esempio
codice:
public class MyDialog extends JDialog implements ActionListener {
    private JPanel pannello;
    private JLabel label;
    private JButton bottone;
    
    public MyDialog(JFrame owner, boolean modal) {
        super(owner, modal);
        pannello = new JPanel();
        pannello.setBackground(Color.RED);
        label = new JLabel("Simo");
        label.setOpaque(false);
        bottone = new JButton("Click");
        bottone.addActionListener(this);
        pannello.setLayout(new GridLayout(2,1));
        pannello.add(label);
        pannello.add(bottone);
        this.setContentPane(pannello);
        this.pack();
        this.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        int n = (int)(Math.random()*256);
        label.setText(""+n);
    }
    
}
Poi richiami MyDialog invece che JDialog.
codice:
public void actionPerformed(ActionEvent e) {
        for(int i = 0; i<3; i++){
            MyDialog dialogo = new MyDialog(this, true);
        }
}