sintassi
implementa interfaccia ItemListener
implements ItemListener
setta il componente del form a cui verrà intercettato l'evento
oggetto.addItemListener(this);
metodo in cui si gestiscono gli eventi
public void itemStateChanged(ItemEvent event)
{
if (event.getItemSelectable() == oggetto) {} verifica quale componente ha generarto l'evento}
if (event.getItemSelectable() == oggetto && event.getStateChange() == ItemEvent.SELECTED) si usa nelle ComboBox
{event.getItem().toString()); restituisce il testo dell'elemento selezionato della ComboBox}
esempio: form con vari componenti per scrivere il menu con vino e giudizio
import javax.swing.*;
import java.awt.event.*;
public class FormManuale extends JFrame implements ItemListener
{
// variabili globali}
JPanel pnl = new JPanel(); // aggiugi un pannello in cui inserire i vari componenti
// array testi ComboBox
String[] styles =
{"Cattivo",};
"Discreto",
"Buono",
// bottoni radio
JRadioButton rad1 = new JRadioButton("Bianco", true);
JRadioButton rad2 = new JRadioButton("Rosso");
ButtonGroup wines = new ButtonGroup();
// componenti
JComboBox box = new JComboBox(styles);
JTextArea textArea = new JTextArea(5,38);
public static void main(String args[])
{FormManuale form = new FormManuale(); // avvia il form Nome_Form}
// costruttore e settaggi del Form Nome_Form
public FormManuale()
{super("Titolo Form"); // titolo del Form}
setSize(500 , 200); // dimensioni (ex. 500,200)
setDefaultCloseOperation(EXIT_ON_CLOSE); // operazione da eseguire dei default (metti sempre questa)
setVisible(true); // visualizza
// gruppo bottoni radio
wines.add(rad1);
wines.add(rad2);
// intercetta eventi dei bottoni radio
rad1.addItemListener(this);
rad2.addItemListener(this);
box.addItemListener(this);
// componenti
pnl.add(rad1);
pnl.add(rad2);
pnl.add(box);
pnl.add(textArea);
add(pnl); // aggiungi pannello
// testo Area
textArea.setText("Menu:");
// gestione eventi
public void itemStateChanged(ItemEvent event)
{textArea.setText("Menu:");}
// eventi bottoni radio a seconda di chi ha generato l'evento
if (event.getItemSelectable() == rad1)
{textArea.setText(textArea.getText() + "\n- vino: Bianco");}
else if (event.getItemSelectable() == rad2)
{textArea.setText(textArea.getText() + "\n- vino: Rosso");}
// evento cambio selezione nella ComboBox
if(event.getItemSelectable() == box && event.getStateChange() == ItemEvent.SELECTED)
{textArea.append("\n- giudizio: " + event.getItem().toString());}