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