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_CLOSE
, DO_NOTHING_ON_CLOSE
, HIDE_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.