Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    31
    Ragazzi scusate ma sto avendo ancora qualche piccolo problemino
    Proseguendo nella scrittura del mio programma, voglio fare in modo di avere, all'avvio, un pannello vuoto in cui, ogni volta che viene premuto un bottone, viene generata la mappa.
    Allora, la cosa funziona ma un po' a rilento, nel senso che a volte devo ridurre a icona l'applicazione e riaprirla per far comparire/aggiornare la mappa. E' normale?
    Il mio codice è questo quando viene premuto il bottone:
    codice:
    Rete r = new Rete(nodi);       panel.removeAll();
           panel.add(new Map(r),0);
    dove panel è il pannello bianco inserito all'inizio nella mia interfaccia grafica, e Map è una classe che estende JPanel in cui vi ho inserito il metodo paintComponent che disegna la mappa.
    C'è un modo migliore per farlo, che magari possa evitare anche questo ritardo nella comparsa del disegno?
    Grazie mille in anticipo!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Naomi92 Visualizza il messaggio
    la cosa funziona ma un po' a rilento, nel senso che a volte devo ridurre a icona l'applicazione e riaprirla per far comparire/aggiornare la mappa. E' normale?
    No, non è corretto, infatti.

    Quote Originariamente inviata da Naomi92 Visualizza il messaggio
    Il mio codice è questo quando viene premuto il bottone:
    codice:
    Rete r = new Rete(nodi);       panel.removeAll();
           panel.add(new Map(r),0);
    dove panel è il pannello bianco inserito all'inizio nella mia interfaccia grafica, e Map è una classe che estende JPanel in cui vi ho inserito il metodo paintComponent che disegna la mappa.
    Intanto: idea non molto buona quella di denominare una tua classe con lo stesso nome di una classe (anzi interfaccia) del framework, cioè Map.

    Comunque quando si rimuovono e/o aggiungono componenti in un contenitore, la prima questione importante è se tale contenitore ha un layout manager oppure no. Se ce l'ha, il layout manager va rivalidato e in genere basta un validate() sul contenitore, perlomeno con i layout manager più semplici. Se non ce l'ha, dovrebbe bastare un repaint().
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

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.