Home / Programmazione / Java / Creare finestre modali in Java
Mattepuffo

Creare finestre modali in Java

Creare finestre modali in Java

Sono rimasto un pò sorpreso dal fatto che i JFrame non hanno la possibilità di essere finestre modali.

Essendo un componente molto usato, lo davo per scontato.

Però, se vogliamo creare finestre modali in Java, possiamo comunque rivolgerci ai JDialog.

Estendendo questa classe, possiamo creare finestre con tutti i componenti che vogliamo, e rendere la finestra modale.

Oggi vediamo un esempio.

All'interno ci piazziamo anche un JPanel; in questo modo possiamo personalizzare la finestra come ci pare, in quanto ci basterà mettere i componenti che ci servono dentro al JPanel.

Ecco qua l'esempio:

public class WindowDetail extends JDialog {

    private final File file;
    private JPanel panelDetail;

    public WindowDetail(File file) {
        super();
        this.file = file;
        createGui();
    }

    private void createGui() {
        panelDetail = new PanelDetail(file);
        setLayout(new BorderLayout());
        add(panelDetail, BorderLayout.CENTER);
        setPreferredSize(new Dimension(800, 500));
        setResizable(false);
        setModal(true);
        setTitle("Dettaglio");
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        pack();
    }

}

Per richiamarlo dal JFrame principale:

WindowDetail dw = new WindowDetail(f);
dw.setLocationRelativeTo(getRootPane());
dw.setVisible(true);

Come al solito ci stanno altri modi per fare tutto ciò.

Anche perchè il JDialog ha diversi costruttori.

Enjoy!