Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [JAVA] - Bloccare esecuzione con JButton

    Salve,

    come si fa a bloccare l'esecuzione di un programma fino a quando non viene premuto un tasto JButton?

    In pratica ho un'interfaccia SWING e l'utente è dovrebbe essere obbligato a premere un tasto per proseguire, ma il programma deve fermarsi e attendere la pressione del tasto...
    :master:
    Come faccio???

    GRAZIE

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    La soluzione piu' semplice e' usare una JDialog modale.

  3. #3
    Si è una soluzione...

    Ma siccome si tratta del gioco del monopoli e l'utente è obbligato a cliccare su "Cambia turno" dovrei visualizzare una JDialog ad ogni cambio di turno e a livello grafico è poco elegante...

    Altri suggerimenti?...

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Disattivi i pannelli contenenti il resto e li riattivi dopo la pressione del bottone?

  5. #5
    do
    {
    dadi.setEnabled(false);
    final int giocatoreAttivo = (game.primoAttivo());
    System.out.println("il gioc att: "+giocatoreAttivo);
    dadi.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    final int lancio = "sommadeidadi"
    ...
    }
    });

    dadi.setEnabled(true);

    turno.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    game.getTurno(giocatoreAttivo);
    }
    });

    if(((Giocatore) game.getGiocatori().get(giocatoreAttivo)).getSoldi ()<0)
    {
    fineGioco = game.endGame((Giocatore)game.getGiocatori().get(gi ocatoreAttivo)) ;
    labelGioc.remove(giocatoreAttivo);
    }
    }while(fineGioco);

  6. #6
    LASCIATE PERDERE IL CODICE DI PRIMA... QUESTO è QUELLO SU CUI DEVO LAVORARE:
    -------------------------------------------------------------------------------------
    do
    {..


    dadi.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    final int lancio = "sommadeidadi"
    ...
    }
    });

    turno.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    game.getTurno(giocatoreAttivo);
    }
    });

    }while(fineGioco);
    -------------------------------------------------------------------------------------

    In pratica devo bloccare questo ciclo (do...while) alla riga turno.addActionListener, aspettando la pressione del JButton turno per poi proseguire.

    In questa situazione il ciclo non aspetta la pressione e va avanti, cosicchè un giocatore continua a tirare il dado senza passare il turno ad altri giocatori...

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Ma tu aggiungi dei listener ad ogni ciclo di un while? di questo passo a fine gioco ne avrai un sacco. Poi perche' un while per gestire il lancio dei dadi?

  8. #8
    Io creo il tasto "turno" fuori dal ciclo DO...WHILE, poi mi serve controllare se viene premuto durante il ciclo...

    Come faccio senza mettere il Listener nel ciclo???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.