| HOME | FORUM | INDICE |

download CardLayoutEsempio.java

/*
    L'esempio mostra il funzionamento del LayoutManager di tipo CardLayout.

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

*/


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

class CardLayoutEsempio extends Frame
{
    Panel p;
    public CardLayoutEsempio(String titolo, int x, int y, int larg, int alt)
    {
        //richiama il costruttore della classe base
        super(titolo);

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

        //imposta le dimensioni della finestra
        setSize(larg, alt);

        addWindowListener(new MyWindowAdapter(this));

        //crea le etichette
        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 delle etichette
        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);
        
        /*
            crea il ManagerLayout di tipo CardLayout da associare al
         contenitore di tipo Pannello
        */

        CardLayout lay= new CardLayout();
        p= new Panel(lay);
        
        //aggiunge le etichette al pannello
        p.add("1", lbl_1);
        p.add("2", lbl_2);
        p.add("3", lbl_3);
        p.add("4", lbl_4);
        p.add("5", lbl_5);
        p.add("6", lbl_6);
        
        //crea il pulsante
        Button cmd= new Button();
        cmd.setLabel("Avanti"); //imposta l'etichetta del pulsante

        //aggiunge il gestore all'evento CLICK
        cmd.addActionListener(new GestoreClick(lay));

        add(cmd, BorderLayout.NORTH);
        add(p, BorderLayout.CENTER);

        //rende visibile la finestra
        setVisible(true);
    }

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

    //gestore dell'evento CLICK del pulsante
    public class GestoreClick implements ActionListener
    {
        private CardLayout lay;
        
        public GestoreClick(CardLayout lay)
        {
            this.lay= lay;
        }
        public void actionPerformed(ActionEvent e)
        {
            //visualizza l'etichetta successiva
            lay.next(p);
        }
    }

    //gestore degli eventi 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);
        }
    }
}