JAVA – SWING – JFRAME

La classe JFrame è una sottoclasse di java.awt.Frame che, a sua volta, è una sottoclasse di java.awt.Window. Per questi motivi JFrame è uno dei componenti GUI di Swing che non è considerato un componente leggero: a differenza della maggior parte dei componenti Swing, JFrame non è scritto esclusivamente in Java, ma va considerato una sorta di “wrapper” sulle finestra native del sistema.

import javax.swing.JFrame;
public class EmptyFrame {
public static void main(String[] args) {
JFrame jFrame = new JFrame(“Empty window”);
// la finestra è creata ma non ancora visibile!
}
}

Quindi un’applicazione dotata di GUI, una volta lanciata, rimane in attesa dell’input utente e termina solo in base ad un determinato evento (es. click su un pulsante close,chiusura della finestra…).

Per default una finestra viene nascosta: questo significa rimossa semplicemente dallo schermo.
Possiamo controllare questo tipo di azione attraverso il metodo setDefaultCloseOperation di JFrame:

import javax.swing.JFrame;
public class EmptyFrame {
public static void main(String[] args) {
JFrame jFrame = new JFrame(“Empty window”);
// definiamo il comportamento per la chiusura
jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}

L’interfaccia WindowConstants (una delle interfacce implementate da JFrame) del package javax.swing definisce 3 costanti da utilizzare con questo metodo: DISPOSE_ON_CLOSEDO_NOTHING_ON_CLOSEHIDE_ON_CLOSE (default).

Per default una finestra non viene visualizzata sullo shermo fino a quando non viene chiamato il suo metodo show(), oppure, come fatto precedentemente, chiamando il metodo setVisible(true).

import javax.swing.JFrame;
public class EmptyFrame {
public static void main(String[] args) {
JFrame jFrame = new JFrame(“Finestra Vuota”);
jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
jFrame.setSize(400,400);
jFrame.setVisible(true);
}
}

e si visualizzerà una finestra vuota.

About Francesco Bragadin

Insegno informatica e telecomunicazioni al liceo scienze applicate ed all'indirizzo informatica e telecomunicazioni. Ho terminato gli studi in ingegneria elettronica e telecomunicazioni lavorando per molti anni come libero professionista nell'ambito della gestione storage e disaster recovery su mainframe.
This entry was posted in Senza categoria. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *