Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    178

    Continua ciclo fin quando la finestra rimane aperta

    Salve,

    Vorrei fare in modo che il ciclo while continui fin quando la finestra rimane aperta. Esiste un modo per fare questo. Ho già provato con:

    codice:
    frame.isActive()
    e
    codice:
    frame.isShowing()
    con esito negativo.

    PS: Ho sbagliato il titolo della discussione e quindi chiedo scusa.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Bombonera Visualizza il messaggio
    Vorrei fare in modo che il ciclo while continui fin quando la finestra rimane aperta.
    Partiamo da alcune valutazioni. Se proprio volessi fare un "loop" del genere la prima cosa ovvia è che non andrebbe fatto nel contesto del Event Dispatch Thread, altrimenti bloccheresti tutta la interfaccia utente.
    Ma se non è nel EDT, non potresti accedere direttamente ai componenti (frame compresi) della interfaccia utente e servirebbe infilarci di mezzo il solito invokeLater. Insomma, il concetto finale è che questi tipi di loop generalmente non si fanno!

    Sarebbe meglio ragionare più ad eventi, cioè registrare un WindowListener e usare il suo windowClosed. Non hai però precisato bene il contesto e gli obiettivi, perché se l'intenzione era quella di aprire un'altra finestra per chiedere es. input all'utente o mostrare qualcosa e poi attendere la chiusura, allora sarebbe forse (e tipicamente) meglio una dialog box "modale" piuttosto che un normale frame.

    Dovresti quindi rivalutare un attimo, magari chiarisci.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    178
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Partiamo da alcune valutazioni. Se proprio volessi fare un "loop" del genere la prima cosa ovvia è che non andrebbe fatto nel contesto del Event Dispatch Thread, altrimenti bloccheresti tutta la interfaccia utente.
    Ma se non è nel EDT, non potresti accedere direttamente ai componenti (frame compresi) della interfaccia utente e servirebbe infilarci di mezzo il solito invokeLater. Insomma, il concetto finale è che questi tipi di loop generalmente non si fanno!

    Sarebbe meglio ragionare più ad eventi, cioè registrare un WindowListener e usare il suo windowClosed. Non hai però precisato bene il contesto e gli obiettivi, perché se l'intenzione era quella di aprire un'altra finestra per chiedere es. input all'utente o mostrare qualcosa e poi attendere la chiusura, allora sarebbe forse (e tipicamente) meglio una dialog box "modale" piuttosto che un normale frame.

    Dovresti quindi rivalutare un attimo, magari chiarisci.
    Ho risolto, grazie per la spiegazione! come sempre molto utili .

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.