Questo è il codice:
codice:
public class Cliente {

	String nominativo = new String();
	String telefono = new String();
	
	//Costruttore per l'inizializzazione di un oggetto Cliente
	public Cliente(){
		nominativo = "NUL";
		telefono = "NUL";
	}
	
	// Metodo per l'inserimento del campo Nominativo
	public void setNominativo(String nomCogn){
		nominativo = nomCogn;
	}
	
	// Metodo per l'inseriemnto del campo Telefono
	public void setTelefono(String numTel){
		telefono = numTel;
	}
		
}
codice:
import java.util.*;
import java.io.*;

public class Spettacolo{
	// variabili (tipi primitivi)
	int nroPosti = 100;
	int nroMaxAttesa;
	int nroPrenotazioni = 0;
	
	// ArrayList per la memorizzazione di oggetto di tipo Cliente
	ArrayList<Cliente> arrayPrenotazioni = new ArrayList<Cliente>();
	ArrayList<Cliente> arrayAttesa = new ArrayList<Cliente>();
	

	// Costruttore per l'inizializzazione di un oggetto di tipo Spettacolo
	public Spettacolo(int valMaxAttesa){
		nroMaxAttesa = valMaxAttesa;
	}
	

	// Metodo "libero" che restituisce T se vi è ancora disponibilità di posti
	public boolean libero(){
		boolean aux_libero = false; //variabile ausiliaria per l'assegnazione del risultato del metodo
		
		if (!arrayPrenotazioni.isEmpty()){ //verifico se la lista prenotazioni è non vuota
			if (nroPosti-arrayPrenotazioni.size() > 0) //verifico se vi è ancora disponibilità di posti
				aux_libero = true;
		}
		else
			aux_libero = true;
		return(aux_libero); //assegno al metodo un valore di outupt corrispondente al valore della variabile ausiliaria
	}
	
	
	public void prenota(Cliente client){
		boolean aux_prenota;
		
		aux_prenota = this.libero();
		if(aux_prenota){
			arrayPrenotazioni.add(client);
			nroPrenotazioni++;
		}
		else
			if (arrayAttesa.size() < nroMaxAttesa)
				arrayAttesa.add(client);
			else System.out.println("Liste di prenotazione e di attesa piene.");
	}
	
	
	public int trova(Cliente client){
		int aux_trova = -1;
		
		if(arrayPrenotazioni.contains(client)) aux_trova = 0;
		else
			if(arrayAttesa.contains(client)) aux_trova = 1;
		return(aux_trova);
	}
	

	public void disdici(Cliente client){
		if(arrayPrenotazioni.contains(client)){
			if(!arrayAttesa.isEmpty()){
				arrayPrenotazioni.remove(arrayPrenotazioni.indexOf(client));
				arrayPrenotazioni.add(arrayAttesa.get(0));
				arrayAttesa.remove(0);
			}
			else{
				arrayPrenotazioni.remove(arrayPrenotazioni.indexOf(client));
				nroPrenotazioni--;
			}
		}
		else
			if(arrayAttesa.contains(client)) arrayAttesa.remove(arrayAttesa.indexOf(client));
			else System.out.println("Cliente non presente in nessuna lista.");
	}
	
	
	public boolean incompleto(Cliente client){
		boolean aux_incompleto = false;
		
		if((arrayPrenotazioni.contains(client)) && (arrayAttesa.contains(client)))	aux_incompleto = true;
		return(aux_incompleto);
	}

	public void salvaDati() throws IOException{
		FileWriter f = new FileWriter("fileoutput.txt"); 
		PrintWriter uscita = new PrintWriter(f); 
		uscita.println("LISTA DELLE PRENOTAZIONI:");
		if (!arrayPrenotazioni.isEmpty()){
			for(int i=0; i < arrayPrenotazioni.size(); i++){
				uscita.print((i+1)+". ");
				uscita.print(arrayPrenotazioni.get(i).nominativo);
				uscita.print(" ");
				uscita.println(arrayPrenotazioni.get(i).telefono);
			}
		}
		else System.out.println("Vuota.");
		uscita.println("LISTA DI ATTESA:");
		if (!arrayAttesa.isEmpty()){
			for(int i=0; i < arrayAttesa.size(); i++){
				uscita.print((i+1)+". ");
				uscita.print(arrayAttesa.get(i).nominativo);
				uscita.print(" ");
				uscita.println(arrayAttesa.get(i).telefono);
			}
		}
		else System.out.println("Vuota");
	        uscita.close();		
	}
	
}
codice:
import java.awt.*;
import javax.swing.*;

public class Index{

	public static void main(String[] args) {
				
		JFrame base = new JFrame("Gestione Spettacolo");
		base.setVisible(true);
		base.setBounds(000,000,490,350);
		base.setResizable(false);
		base.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JPanel p1 = new JPanel();
		base.add(p1);
		p1.setVisible(true);
		p1.setBounds(0,0,490,350);
		
		JLabel l1 = new JLabel("PRENOTAZIONI");
		p1.add(l1);
		l1.setVisible(true);
		l1.setBounds(10,5,150,10);
		
		JTextField txt1 = new JTextField("Nome");
		p1.add(txt1);
		txt1.setVisible(true);
		txt1.setBounds(10,80,230,35);
		
		JTextField txt2 = new JTextField("Cognome");
		p1.add(txt2);
		txt2.setVisible(true);
		txt2.setBounds(250,80,230,35);

		JTextField txtAttesa = new JTextField("N° max clienti in lista d'attesa");
		p1.add(txtAttesa);
		txtAttesa.setVisible(true);
		txtAttesa.setBounds(10,40,215,30);

		JButton b1 = new JButton("Prenota");
		p1.add(b1);
		b1.setVisible(true);
		b1.setBounds(10,120,150,40);
		
		JButton b2 = new JButton("Trova");
		p1.add(b2);
		b2.setVisible(true);
		b2.setBounds(230,120,90,40);
		
		JButton b3 = new JButton("Disdici");
		p1.add(b3);
		b3.setVisible(true);
		b3.setBounds(330,120,150,40);
		
		JButton b4 = new JButton("Liberi");
		p1.add(b4);
		b4.setVisible(true);
		b4.setBounds(10,170,230,40);
		
		JButton b5 = new JButton("Incompleti");
		p1.add(b5);
		b5.setVisible(true);
		b5.setBounds(250,170,230,40);
		
		JButton b6 = new JButton();
		p1.add(b6);
		b6.setVisible(true);
		b6.setEnabled(false);
		b6.setBounds(170,120,50,40);
		
		JButton b7 = new JButton("Genera");
		p1.add(b7);
		b7.setVisible(true);
		b7.setBounds(225,40,90,30);
		
		JButton b8 = new JButton("SALVA");
		p1.add(b8);
		b8.setVisible(true);
		b8.setBounds(185,225,120,40);		
	}

}