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

    JAVA - scoprire se una classe è attualmente itanziata

    salve
    devo fare in modo che non venga aperta contemporneamente più di 1 frame interno che viene creato da un JMenuItem.
    Come posso scoprire se nel momento in cui clicco esiste già un istanza di quella classe (e in questo caso nn faccio aprire nulla) oppure no (in questo caso appare la finestra)?
    grazie

  2. #2
    potresti usare una variabile booleana inizialmente settata a false e che poi quando si apre il primo frame viene settata a true...poi metti un controllo che quando uno clicca viene aperto un nuovo frame solo se la variabile è ancora a false (perchè se è già true vuol dire che c'è già una finestra aperta in quel momento).

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  3. #3
    si lo so
    finora avevo fatto cosi, ma pensavo ci fosse un modo più "di classe" ahahahha
    scusa il gioco di parole :P
    cmq intendevo se c'era un metodo di qualche classe già esistente, senza dover creare metodi miei

  4. #4
    Beh dato che la classe JFrame (presumo tu stia usando quella, comunque se usi la semplice classe Frame è lo stesso) è una sottoclasse della classe (scusa il gioco di parole) windows puoi usare il metodo
    codice:
    nomeFinestra.isShowing()
    che ti ritorna un booleano dicendoti se la finestra è visualizzata o meno...
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da Matteo982
    Beh dato che la classe JFrame (presumo tu stia usando quella, comunque se usi la semplice classe Frame è lo stesso) è una sottoclasse della classe (scusa il gioco di parole) windows puoi usare il metodo
    codice:
    nomeFinestra.isShowing()
    che ti ritorna un booleano dicendoti se la finestra è visualizzata o meno...
    Non è una buona soluzione: se il jframe è stato creto no è detto che in quel momento sia visibile.

    Devi usare il pattern Singleton: nel tuo frame dichiari il costruttore private in modo che non sia invocabile dall'esterno della classe; poi implementi un meotod public che restituisce l'unica istanza possibile:

    codice:
    class MyFrame{
        
        private MyFrame frame;
    
        private MyFrame(){
         ....
        }
    
        public static MyFrame getUniqueInstance(){
           if(frame == null)
              frame = new MyFrame();
           return frame;
        }
    
    }
    la prima volta che viene invocato MyFrame.getUniqueInstance() viene istanziato il frame e resituito; le volte successive viene restituito il riferimento all'unico frame già istanziato.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  6. #6
    beh...lui aveva chiesto se c'era un modo diverso che usare le variabili boleane...

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    ha chiesto se c'era un metodo più di classe e gli ho suggerito ilpattern Singleton...

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

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