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

    Cambiare panel all'interno di un Frame

    Salve, vorrei realizzare una GUI per la gestione di un database, in cui ho un borderlayout nella parte WEST con un jtree per la scelta di varie schermate e nella parte CENTER ho un panel che vorrei cambiasse ogni volta che seleziono una foglia del jtree. Il problema su cui sono bloccato è che il panel centrale la prima volta che clicco una foglia cambia correttamente, ma dalla seconda volta non accade nulla.
    Questo è il codice in cui faccio lo switch di pannello:
    codice:
    public void changeCenterPanel(JPanel panel) {         
            mainPanel.remove(oldPanel); 
            mainPanel.add(panel);
            oldPanel = panel;
            this.setVisible(true);
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Che io sappia solitamente, dopo aver applicato una modifica all'interfaccia, per renderla effettiva si "rivalida" il contenitore invocando il metodo revalidate() su di esso, e poi si chiede di ridisegnarlo attraverso il metodo repaint().
    Quindi prova prima ad applicare questi due metodi a mainPanel dopo aver eseguito le modifiche.

    Tieni presente che la modifica di un'interfaccia in esecuzione è un tantino delicata, bisognerebbe sapere come agire con il threading e altre cose di cui non sono affatto esperto, prova a documentarti un po'.

    In ogni caso se non dovesse funzionare puoi anche pensare di distruggere il vecchio frame e ricostruire direttamente il frame nuovo con visibile il pannello che richiedi, sempre che non sia troppo difficile ricondursi alla situazione in cui era il frame precedente e facendo attenzione a non dover rieseguire operazioni inutili più volte...

  3. #3
    grazie mille, funziona perfettamente!!

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.