Salve ragazzi, vi scrivo per porvi un problema che non riesco a risolvere che è di fondamentale importanza. Il problema riguarda la creazione e l'avio di un JDialog modale. Vi posto l'intero codice in cui accade l'errore:

codice:
public void partita(final Uman umano, final IA computer,final JFrame frame){

		JFrame frameComandi = new JFrame("Comandi");
		JDialog comandi = new JDialog(frameComandi, Dialog.ModalityType.DOCUMENT_MODAL);

		JButton	btnRilancia = new JButton("Rilancia");
		btnRilancia.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				Campionato.durataPartita++;
				umano.Rilancia(frame, (SquadraUmano) umano.getSquadra(), umano.getGiocatori());
			}
		});
		btnRilancia.setName("Rilancia");

		JButton	btnTira = new JButton("Tira");
		btnTira.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				Campionato.durataPartita++;
				umano.Contrasta(frame, umano.getGiocatori(), computer.getGiocatori(), (SquadraUmano)umano.getSquadra(), (SquadraAvversaria)computer.getSquadra());
				if(((FinestraPartita) frame).getGiocatoreCorrente().getSquadra().equalsIgnoreCase(umano.getSquadra().GetNomeSquadra()))
					umano.Tira(frame, computer.getGiocatori(), (SquadraAvversaria)computer.getSquadra(), (SquadraUmano)umano.getSquadra());
			}
		});
		btnTira.setName("Tira");

		JButton btnPassaggio = new JButton("Passaggio");
		btnPassaggio.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				Campionato.durataPartita++;
				umano.Contrasta(frame, umano.getGiocatori(), computer.getGiocatori(), (SquadraUmano)umano.getSquadra(), (SquadraAvversaria)computer.getSquadra());
				if(((FinestraPartita) frame).getGiocatoreCorrente().getSquadra().equalsIgnoreCase(umano.getSquadra().GetNomeSquadra()))

					umano.Passa(frame, (SquadraAvversaria)computer.getSquadra(), umano.getGiocatori(), computer.getGiocatori());
			}
		});
		btnPassaggio.setName("Passaggio");

		
		comandi.add(btnPassaggio);
		comandi.add(btnTira);
		comandi.add(btnRilancia);	
		
		if((int)(Math.random()*10)>5){
			((FinestraPartita) frame).setGiocatoreCorrente((Portiere) Search(12,168,umano.getGiocatori()));
			((FinestraPartita) frame).getGiocatoreCorrente().setEnabled(true);
		}
		else{
			((FinestraPartita) frame).setGiocatoreCorrente((Portiere) Search(638,168,computer.getGiocatori()));
			((FinestraPartita) frame).getGiocatoreCorrente().setEnabled(true);
		}

		// continuare. . . . . 
		while(durataPartita < 5){
			if (((FinestraPartita) frame).getGiocatoreCorrente().getSquadra().equalsIgnoreCase(squadra.GetNomeSquadra()))	{
				// Chiedi all'utente

				frameComandi.setVisible(true);
			}
			else{
				//computer
				TurnoComputer(frame, computer, umano);
				durataPartita++;
			}
		}
ah dimenticavo... l'errore è un blocco del sistema in genrale tale da costringermi a riavviare il pc

spero in un vostro aiuto..buona giornata