Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568

    [JAVA] swing cambio pannello

    ho un dubbio con l'uso delle classi visuali swing...

    per passare da una videata ad un altra ( o meglio pannello ) come devo fare ???

    mi viene in mente di mettere tutti i pannelli nella stessa classe e di farne vedere uno alla volta...

    funzionare funziona sicuro, ma è una cavolata e ci sono modi migliori o si fa davvero così ???
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    La cosa non è chiara: i pannello dove li visializzi? Ci deve essere un JFrame, che li visualizza.

    A questo punto hai due scelte: o li crei tutti e li visualizzi uno alla volta, oppure li costruisci solo quando servono e li visualizzi.


    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 L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    esatto è proprio questa la domanda... quale dei 2 metodi è migliore ???
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Senza dubbio il primo è più facile da gestire (anche se l'altro non è per niente difficile), però il secondo "spreca" meno memoria, in quanto ad ogni istante c'è solamente un pannello (solamente un oggetto di tale tipo risulta effettivamente costruito) e quelli non presenti vengono automaticamente rimossi dal GC.


    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 L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    ..ehm.. ultima cosa... hai un esempio banale del secondo metodo ???
    e cmq si fa sempre tutto nella stessa classe ???

    ti ringrazio tanto delle tue risposte
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Sì, in genere si fa tutto nella stessa classe, anche se nessuno ti vieta di trasferire all'esterno questa gestione. Ecco l'esempio che visualizza, all'inizio, un pannello con un pulsante. Quando si clicca sul pulsante, il pannello viene sostituito da un altro pannello con una scritta:
    codice:
    public class Finestra extends JFrame implements ActionListener {
    
       private JPanel pannello1;
       private JPanel pannello2;
       private JButton pulsante;
       private JLabel scritta;
       private Container c;
    
       public Finestra() {
          c = getContentPane();
          c.setLayout( new BorderLayout() );
    
          pannello1 = new JPanel();
          pannello1.setLayout( null );
          
          pulsante = new JButton("Clicca qui");
          pulsante.setBounds(40, 40, 180, 30);
          pulsante.addActionListener(this);
          pannello1.add(pulsante);
    
          c.add(pannello1);
       }
    
       public void actionPerformed(ActionEvent ae) {
          // Qui tolgo il primo pannello,
          // creo il secondo e lo aggiungi
          c.remove(pannello1);
          pannello1 = null;
          doLayout();
          pannello2 = new JPanel();
          scritta = new JLabel("Questo è il secondo pannello");
          pannello2.add(scritta);
          c.add(pannello2);
          doLayout();
       }
    
       public static void main(String [] args) {
          Finestra f = new 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

  7. #7
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    Perfetto !!!
    sono a posto grazie 1000
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

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 © 2024 vBulletin Solutions, Inc. All rights reserved.