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.