| HOME | FORUM | INDICE |

download ListEsempio.java

/*
    L'esempio mostra l'utilizzo del controllo List.

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

*/


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

class ListEsempio extends Frame implements ActionListener, ItemListener
{
    java.awt.List cont;
    
    //costruttore
    public ListEsempio()
    {
        //richiama il costruttore della classe base per impostare il titolo della finestra
        super("Esempio uso del controllo LIST");

        int larg= 400;
        int alt= 300;

        //aggiunge il gestore all'evento di chiusura della finestra
        addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){System.exit(0);} });
        
        //imposta la dimensione della finestra
        setSize(larg, alt);

        //estrae le dimensioni dello screen
        GraphicsEnvironment ge= GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice dv= ge.getDefaultScreenDevice();
        GraphicsConfiguration cfgScr= dv.getDefaultConfiguration();
        Rectangle dim= cfgScr.getBounds();
        
        //imposta la posizione centrata della finestra rispetto allo schermo
        setLocation((dim.width - larg)/2, (dim.height - alt)/2);

        //rende visibile la finestra
        setVisible(true);

        //crea il controllo List
        cont= new java.awt.List(4, true);

        //aggiunge gli elementi
        cont.add("Cane");
        cont.add("Gatto");
        cont.add("Canarino");
        cont.add("Gallina");
        cont.add("Maiale");
        
        //aggiunge il gestore dell'evento di cambio stato
        cont.addItemListener(this);

        //posiziona la lista nella zona superiore della finestra
        add(cont,BorderLayout.NORTH);
        
        //crea il pulsante
        Button cmd= new Button("Seleziona");

        //aggiunge il gestore all'evento CLICK
        cmd.addActionListener(this);

        //posiziona il pulsante nella zona inferiore della finestra
        add(cmd, BorderLayout.SOUTH);
        
        //compatta la finestra
        pack();
    }

    //gestore dell'evento di cambio stato degli item della List
    public void itemStateChanged(ItemEvent e)
    {
        //visualizza lo stato dell'elemento appena cliccato
        Integer indice= (Integer) e.getItem();
        int i= indice.intValue();
        boolean sel= cont.isIndexSelected(i);

        System.out.println(i + " " + sel);
        
    }

    //gestore dell'evento CLICK del pulsante
    public void actionPerformed(ActionEvent e)
    {
        //visualizza gli elementi selezionati con il relativo indice
        int[] sel= cont.getSelectedIndexes();
        if (sel.length != 0)
        {
            for(int x= 0; x < sel.length; x++)
            {
                String elm= cont.getItem(sel[x]);
                System.out.println(elm + " (indice " + sel[x] + ")");
            }
        }
    }

    //punto d'ingresso dell'applicazione
    public static void main(String[] args)
    {
        new ListEsempio();
    }
}