Come si crea una finestra di Windows con JFrame in Java?

di il
1 risposte

Come si crea una finestra di Windows con JFrame in Java?

Ciao ragazzi, sono nuovo e programmo da poco. Qualcuno potrebbe pubblicare un codice semplice e diretto, con spiegazioni passaggio per passaggio, che mi crei una semplice finestra di Windows in cui far funzionare i semplici programmi che creo? Avevo trovato un codice che utilizzava JFrame, ma non sembrava "arrivare" dritto al punto, inoltre non vi erano spiegazioni dei passaggi, nonostante funzionasse alla perfezione. Ho avuto esperienza con Scratch, creando diversi giochi in 2D, quindi non sono completamente estraneo alla programmazione. Grazie mille!

1 Risposte

  • Re: Come si crea una finestra di Windows con JFrame in Java?

    Nicholas389 ha scritto:


    Qualcuno potrebbe pubblicare un codice semplice e diretto, con spiegazioni passaggio per passaggio, che mi crei una semplice finestra di Windows in cui far funzionare i semplici programmi che creo? Avevo trovato un codice che utilizzava JFrame, ma non sembrava "arrivare" dritto al punto
    Il codice minimale (davvero basilare) per creare un JFrame è il seguente:
    import javax.swing.JFrame;
    import javax.swing.SwingUtilities;
    
    public class FrameProva extends JFrame {
        public FrameProva() {
            super("Frame di prova");
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            setSize(400, 300);
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(() -> new FrameProva().setVisible(true));
        }
    }
    Nel invokeLater ho usato una lambda (Java 8+) ma si può usare una classica anonymous class.

    Se però vuoi affrontare lo sviluppo di gui con Swing, ci sono svariati concetti che devi vedere (c'è il tutorial Oracle), tra cui sicuramente:
    • differenza "componenti" vs "contenitori"
    • layout dei componenti con i layout manager o con il posizionamento assoluto
    • gestione degli eventi con i listener
    • threading in Swing, il EDT (Event Dispatch Thread)
    • custom painting (concetto più "avanzato")
Devi accedere o registrarti per scrivere nel forum
1 risposte