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

    Consentire la creazione di una sola Jframe dello stesso tipo

    Ciao,
    attualmente creo un JFrame con il seguente codice:

    codice:
    m=new MyFrame();
    m.setVisible(true);
    m.setPreferredSize(new Dimension(800, 600));
    e chiudo la mia frame con il codice:

    codice:
    MyFrame.this.dispose();
    Adesso vorrei fare in modo che se c'e' gia' aperta un'istanza dell'oggetto MyFrame non fosse possibile aprirne un'altra.
    Mettendo la prima parte di codice dentro un if:

    codice:
    if(m==null){
    m=new MyFrame();
    m.setVisible(true);
    m.setPreferredSize(new Dimension(800, 600));
    }
    funziona se e' la prima volta che la creo.
    Ma dato che il metodo dispose non pone l'oggetto a null cosi' non sara' piu' possibile creare lo stesso oggetto.
    Come dovrei risolvere?

  2. #2
    ponilo tu a null dopo aver invocato il dispose.
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

  3. #3
    non si puo' fare.
    In realta' la soluzione l'ho trovata e sta nell'utilizzare la classe singleton.

  4. #4
    ovvero
    creo il metodo:

    codice:
      public static MyFrame getInstanceMyFrame()  {
            if (m==null) {
               m=new MyFrame();
            }
            return m;
        }{

    definisco l'istanza della mia classe statica e privata:
    codice:
    private static MyFrame m;
    e dove prima creavo l'istanza con il new qui metto:

    codice:
    getInstanceMyFrame();

  5. #5
    in effetti così può andare.

    ma, scusa, tu dove lo usi? in un evento specifico?
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

  6. #6
    nel click di un jbutton

  7. #7
    allora non potresti farlo nell'actionPerformed?
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

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.