é possibile settare gli eventi dei vari componenti del Form in maniera centrale e coumulativa invece che per ciascun componente


da inserire:
import java.awt.event.*;


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());
}
}
}