Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [Java] Start/Stop

  1. #1

    [Java] Start/Stop

    Salve,

    vorrei creare un meccanismo di start/stop e finora ho prodotto solo il seguente codice :


    codice:
     ActionListener ciakSIgira = new ActionListener() {
    
                public void actionPerformed(ActionEvent e) {
                    Object source = e.getSource();
                    if (source == start) {
                        start.setEnabled(false);
                        stop.setEnabled(true);
                        boolean via=true;
                        while (via) {
                            //fai qualcosa
                            if (e.getSource()==stop) via=false;
                        }
                    }
                    if (source == stop) {
                        start.setEnabled(true);
                        stop.setEnabled(false);
                        star = 0;
                    }
    
                }
            };
            stopSO.addActionListener(ciakSIgira);
            startSO.addActionListener(ciakSIgira);
    cliccando su start il bottone stop non viene abilitato ed entro in un ciclo while infinito...

    come posso inserire all'interno di un while un ascoltatore sul bottone stop?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] Start/Stop

    Originariamente inviato da JunkyFunki
    vorrei creare un meccanismo di start/stop e finora ho prodotto solo il seguente codice :

    cliccando su start il bottone stop non viene abilitato ed entro in un ciclo while infinito...

    come posso inserire all'interno di un while un ascoltatore sul bottone stop?
    Quando un metodo di un listener viene invocato, si è nel contesto del EDT (event dispatch thread), che non deve mai essere bloccato per troppo tempo, pena un "congelamento" dell'intera interfaccia utente.

    Quindi fare lì in quel contesto operazioni lunghe, cicli infiniti o cose del genere è sbagliato e crea solo problemi.

    Dipende da cosa devi fare di preciso ... cioè da cosa è quel "fai qualcosa" che hai indicato. Se devi fare una sequenza di operazioni lunghe o comunque varie allora sarebbe opportuno creare ed avviare un nuovo thread in cui eseguire queste operazioni. E il fatto di poter terminare queste operazioni implica che la gestione di queste operazioni deve essere scritta appositamente in modo da "cooperare" per quanto riguarda la terminazione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: [Java] Start/Stop

    Originariamente inviato da andbin
    Quando un metodo di un listener viene invocato, si è nel contesto del EDT (event dispatch thread), che non deve mai essere bloccato per troppo tempo, pena un "congelamento" dell'intera interfaccia utente.

    Quindi fare lì in quel contesto operazioni lunghe, cicli infiniti o cose del genere è sbagliato e crea solo problemi.

    Dipende da cosa devi fare di preciso ... cioè da cosa è quel "fai qualcosa" che hai indicato. Se devi fare una sequenza di operazioni lunghe o comunque varie allora sarebbe opportuno creare ed avviare un nuovo thread in cui eseguire queste operazioni. E il fatto di poter terminare queste operazioni implica che la gestione di queste operazioni deve essere scritta appositamente in modo da "cooperare" per quanto riguarda la terminazione.
    il "fai qualcosa" in pratica preleva dati da una database per aggiornare una jtextarea.

    cmq ora mi documento sui thread e vedo se riesco a risolvere il problema !
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

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 © 2025 vBulletin Solutions, Inc. All rights reserved.