Qualcosa non funziona. Col button il programma restava in attesa dell'evento click, mentre col choice continua, l'unico effetto che ottengo è la stampa della scelta ma intanto gli output automatici sono già iniziati.
codice:
menu.setEnabled(true); // menu è il mio Choice che partiva disattivato
		
menu.addItemListener(new ItemListener() {
			
	@Override
	public void itemStateChanged(ItemEvent e) {
				
		if (e.getStateChange() == ItemEvent.SELECTED) {
			tuaScelta = menu.getSelectedIndex()-1;
			menu.setEnabled(false);
			scrivi.append("Quarto di finale: ");
			avvers1 = 7 - tuaScelta;		
			scrivi.append(SquadreNomi[tuaScelta] + "-" + SquadreNomi[avvers1] + "\n");
		}
				
	}
});
Il programma esegue le istruzioni seguenti ma appunto non considera la squadra selezionata, a parte scrivermela nella JTextArea scrivi.
Ho provato a riprodurre la situazione che avevo con il button, cioè inserendo le istruzioni nel listener, ottenendo un
Exception in thread "main" java.lang.NoClassDefFoundError
su una classe definita nel caller, che è perfettamente scritta e implementata dato che lasciando le istruzioni successive fuori dal listener funziona.
Ho anche provato a spostare le istruzioni successive nell'if del listener, e Java mi lancia
unreported exception InterruptedException; must be caught or declared to be thrown
ma se aggiungo il relativo throws dichiarando il metodo, mi dice che non posso implementarlo in quel metodo.