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

    Aprire frame dopo il dispose

    Ciao a tutti! ho un internalFrame singleton all'interno della mia applicazione e alla chiusura sono costretto a invocare il dispose per chiudere il frame per notificare al ContainerListener del desktop pane che il frame e' stato chiuso per eliminarlo dal menu delle window aperte! dato che il frame e' singleton alla richiesta di una nuova apertura a causa del dispose non riesco a farlo visualizzare! C'e' un modo per riallocare le risorse dopo il dispose? Oppure un altro sistema per avviasare il Desktop pane dell'eliminazione del frame? Grazie

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

    Re: Aprire frame dopo il dispose

    Originariamente inviato da rocklife
    ho un internalFrame singleton all'interno della mia applicazione e alla chiusura sono costretto a invocare il dispose per chiudere il frame per notificare al ContainerListener del desktop pane che il frame e' stato chiuso per eliminarlo dal menu delle window aperte!
    A dire il vero sarebbe più pulito usare un javax.swing.event.InternalFrameListener sul internal frame.
    Oppure ogni volta che si apre il menù delle window aperte (immagino intendi proprio un JMenu), basta ricaricarlo andando a prendere la lista dei JInternalFrame che JDesktopPane può fornire.

    Originariamente inviato da rocklife
    dato che il frame e' singleton alla richiesta di una nuova apertura a causa del dispose non riesco a farlo visualizzare! C'e' un modo per riallocare le risorse dopo il dispose?
    setVisible(true)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Il setVisible(true) non da' alcun segno di vita. Quando lo richiamo dopo il dispose non succede nulla. Per quando riguarda il menu, sono costretto ad utilizzare quel metodo perche' devo anche disabilitarlo quando non ci sono frame aperti!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da rocklife
    Il setVisible(true) non da' alcun segno di vita.
    Aspetta ma hai proprio "rimosso" dal JDesktopPane il JInternalFrame? Chiaramente, se così, va riaggiunto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Faccio anche l'add su dektop pane ma nulla!!!!

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da rocklife
    Faccio anche l'add su dektop pane ma nulla!!!!
    Guarda, per le finestre "normali" (JFrame, ecc...) dopo un dispose() basta un setVisible(true) per riaprirla e di questo sono sicuro al 100% (lo dice pure da qualche parte la documentazione).

    Per JInternalFrame .... in effetti non ne sono (più) tanto sicuro. Da una velocissima prova ho visto che il dispose() sul internal frame fa sì che venga rimosso dal JDesktopPane cioè getComponentCount() indica proprio che non c'è più.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.