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

    [Java] Curiosità sull'apertura dei frame

    Ragazzi volevo chiarire un mio dubbio qualora qualcuno di voi sia a conoscenza. Praticamente io sto sviluppando un software gestionale nel quale il frame principale si appoggia a vari altri frame magari per effettuare operazioni di aggiunta, modifica ecc..

    Il mio problema è che ogni volta che clicco sul jButton (ad esempio per l'aggiunta) si apre un nuovo frame per ogni click che faccio, invece vorrei che se ne aprisse solo uno anche dopo diversi click sul jButton. Penso che la soluzione stia nella modifica di questo codice che richiama il frame:

    codice:
    java.awt.EventQueue.invokeLater(new Runnable() {             
    public void run() {                 
    new Aggiungi().setVisible(true);             
    }         });

    Vi ringrazio in anticipo

  2. #2
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Dando per scontato che l'oggetto AggiungiElettronica sia un frame... con il tuo codice ogni volta che fai clic ne istanzi e rendi visibile uno nuovo.
    Dovresti memorizzare un'unica istanza della finestra che vuoi mostrare e richiamare su quella il setVisible(true), invece che fare new AggiungiElettronica()

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Esattamente.
    Dovresti tenere un riferimento al tuo frame. Prima di istanziarlo, controlla che esso sia nullo. Se non lo è, potresti, ad esempio, portarlo in primo piano:

    codice:
    ...
    private Aggiungi frmAggiungi;
    ...
    java.awt.EventQueue.invokeLater(new Runnable() {             
       public void run() {
          if (frmAggiungi != null) {
             // Il frame è già aperto, lo porto in primo piano
             frmAggiungi.toFront();
          } else {
             // Il frame non è ancora presente... lo creiamo
             frmAggiungi = new Aggiungi();
             frmAggiungi.setVisible(true);
          }
       }
    );
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    gentilissimo adesso provo ad applicare il tuo suggerimento

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.