Gestione dei turni con un JButton

di il
1 risposte

Gestione dei turni con un JButton

Ho un metodo turn che rappresenta un turno di ogni giocatore, mi serve che questo termini quando viene premuto un bottone 'turno successivo'
non capisco però come gestire la cosa, ho provato a usare un ciclo while che controllasse all'infinito un attributo finchè questo non veniva cambiato dal pulsante ma questo, non so perchè, non permetteva la visualizzazione di tutta la finestra. qui di seguito metto la parte di codice interessata:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class ActionButton extends JButton implements ActionListener{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	Game g;
	public ActionButton(Game game){
		g=game;
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		ActionButton button=(ActionButton)e.getSource();
		
		button.action();
		
	}
	
	public void action(){
		g.turnterm=false;
	}
	
	
	

}

public class Game{

boolean turnterm=true;

public void turn(){
//do something

while(turnterm){
}

//do something else

turnterm=true
}

}

1 Risposte

  • Re: Gestione dei turni con un JButton

    PLAYER.RUNNER ha scritto:


    ho un metodo turn che rappresenta un turno di ogni giocatore, mi serve che questo termini quando viene premuto un bottone 'turno successivo'
    non capisco però come gestire la cosa, ho provato a usare un ciclo while che controllasse all'infinito un attributo finchè questo non veniva cambiato dal pulsante ma questo, non so perchè, non permetteva la visualizzazione di tutta la finestra.
    In questi casi devi ragionare solo "ad eventi", non puoi aspettarti di avere un "flusso" nell'esecuzione che puoi controllare come in un normale programma.
    Se controlli all'infinito una variabile è normale che il thread che si deve occupare dell'aspetto grafico sia impegnato a fare altro, e questo non va bene!

    Puoi usare delle opportune variabili per sapere in ogni momento qual'è il giocatore in attesa del proprio turno e quale invece deve fare una determinata azione, a seconda degli eventi poi effettui le opportune modifiche all'interfaccia e modifichi tutte le variabili o gli oggetti che si occupano dell'aspetto "logico" del programma.
Devi accedere o registrarti per scrivere nel forum
1 risposte