| HOME | FORUM | INDICE |

download GridBagLayoutEsempio.java

/*
    L'esempio mostra l'utilizzo del ManagerLayout di tipo GridBagLayout.

    Autore: Agosto 2009, Giovanni Iacobelli - http://www.iacosoft.com

*/


import java.awt.*;
import java.awt.event.*;

class GridBagLayoutEsempio extends Frame
{
    public GridBagLayoutEsempio(String titolo, int x, int y, int larg, int alt)
    {
        //richiama il costruttore della classe base per impostare il titolo della finestra
        super(titolo);

        //imposta la posizione della finestra
        setLocation(x,y);

        //imposta la dimensione della finestra
        setSize(larg, alt);

        //aggiunge il gestore all'evento di chiusura della finestra
        addWindowListener(new MyWindowAdapter(this));

        Label lbl_1= new Label("Testo UNO", Label.CENTER);
        Label lbl_2= new Label("Testo DUE", Label.CENTER);
        Label lbl_3= new Label("Testo TRE", Label.CENTER);
        Label lbl_4= new Label("Testo QUATTRO", Label.CENTER);
        Label lbl_5= new Label("Testo CINQUE", Label.CENTER);
        Label lbl_6= new Label("Testo SEI", Label.CENTER);
        
        //imposta lo sfondo di ciascuna etichetta
        lbl_1.setBackground(Color.red);
        lbl_2.setBackground(Color.green);
        lbl_3.setBackground(Color.yellow);
        lbl_4.setBackground(Color.pink);
        lbl_5.setBackground(Color.blue);
        lbl_6.setBackground(Color.orange);
        
        GridBagLayout ml = new GridBagLayout();
        GridBagConstraints mlc= new GridBagConstraints();

        //imposta il gestore del layout di tipo GridBagLayout
        setLayout(ml);
        
        //il gestore interessa sia lo spazio orizzontale che verticale
        mlc.fill= GridBagConstraints.BOTH;
        
        //aggiunge la prima etichetta
        ml.setConstraints(lbl_1, mlc);
        add(lbl_1);
        
        //la seconda etichetta sarą affiancata alla prima e terminerą fine alla fine della griglia
        mlc.gridwidth= GridBagConstraints.REMAINDER; //a fine griglia
        ml.setConstraints(lbl_2, mlc);
        add(lbl_2);
        
        //la terza etichetta verrą stampata nella riga successiva
        mlc.gridwidth=1; // ripristino (equivale a cellspan in HTML)
        mlc.gridy=1; // vai alla 2a riga
        ml.setConstraints(lbl_3, mlc);
        add(lbl_3);
        
        //la quarta etichetta verrą stampata a destra della terza
        ml.setConstraints(lbl_4, mlc);
        add(lbl_4);
        
        //la quinta etichetta verrą stampata a destra della quinta
        ml.setConstraints(lbl_5, mlc);
        add(lbl_5);

        //la sesta etichetta verrą posizionata nella 2 colonna della 2 riga
        mlc.gridy=2; //vai alla 3 riga
        mlc.gridx=1; //vai alla 2 colonna
        ml.setConstraints(lbl_6, mlc);
        
        add(lbl_6);
        
        setVisible(true);
    }

    //punto d'ingresso dell'applicazione
    public static void main(String[] args)
    {
        GridBagLayoutEsempio w= new GridBagLayoutEsempio("Esempio Layout Manager",0,0, 500,300);
    }

    //gestore per l'evento di chiusura della finestra
    public class MyWindowAdapter extends WindowAdapter
    {
        private Frame win;
        public MyWindowAdapter(Frame win)
        {
            this.win= win;
        }

        public void windowClosing(WindowEvent e)
        {
            System.exit(0);
        }
    }
}