Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    27

    Gestione chiusura form

    buon giorno a tutti e buon 2013.

    vi espongo il mio problema:

    ho un form1 da quale con un bottone mi apre un secondo form2.
    quindi ora ho due form aperti: form1 e form2.

    nel form2 ho un bottone che selezionandolo mi aggiorna dei dati nel form1.

    io vorrei che facendo click sul botton del form2 questo si chiuda e il form1 si aggiorni.

    al momento quando sono nel form2 ho:

    Form1 form = new Form1(list...);
    this.setVisible(false);

    cosi il form2 si chiude ma il form1 rimane aperto ma non si aggiorna con i dati passati dal form2.

    potete darmi una mano?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Setta il Form2 in modo che, di default, alla chiusura non faccia nulla:

    codice:
    setDefaultCloseOperation(DO_NOTHING_ON_CLOSE) );
    aggiungi al Form2 un WindowListener in cui ridefinisci il metodo windowClosing() in modo che effettui le seguenti operazioni:

    1) Aggiorna la Form1
    2) Chiude se stesso chiamando dispose();


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    27
    ciao e grazie per la risposta.

    nel mio form2 ho questo evento che gestisce doppio click per passare i dati dal form2 al form1

    codice:
    private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {   
    {
              ArrayList<String> list = new ArrayList<String>();
               .....popolo la list che passo al form1
               Form1 form = new Form1(list);   
                
    }
    come mi ha detto se nel codice del form2 ridefinisco il metodo formWindowClosing

    non ho ben capito come integrare le due parti formWindowClosing e jTable1MouseClicked
    perchè già nel metodo jTable1MouseClicked passo i dati al form1

    grazie

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Allora, molto più semplicemente, aggiungi il dispose() dopo l'aggiornamento.
    Pensavo che tu dovessi gestire l'aggiornamento in fase di chiusura del form (dove, per "chiusura" intendo proprio il clic sulla X della finestra).


    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    27
    ho provato nel modo che sotto puoi vedere.
    ma il risultato che ottendo è che il form2 si chiude ma il form1 mi compare due volte: uno vuoto e l'altro con i dati passati dal form2.

    codice:
    private void jTable1MouseClicked(java.awt.event.MouseEvent evt)
    {
             ArrayList<String> list = new ArrayList<String>();
               .....popolo la list che passo al form1
               Form1 form = new Form1(list);   
               form.setVisible(true);
                
                //chiudo il form form2
                this.dispose();
    
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    27
    spero di non aver fatto confusione o se servono altre informazioni fammi sapere
    perchè non riesco proprio a capire come risolvere il problema.

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Beh... quello che hai fatto tu è diverso.

    Hai creato una nuova istanza di Form1 (e, infatti, te lo trovi doppio). Quello che serve a te è il riferimento al Form1 originario, che dovrai passare in qualche modo al Form2.

    Non è un problema di "aggiornamenti" o di "grafica"... è un problema ben più basilare: il passaggio di riferimenti fra oggetti.


    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

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.