Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    80

    [JAVA]getContentPane() o no?

    ciao a tutti,
    usando le Swing ho notato che quando voglio aggiungere un Panel a un Frame posso farlo in due modi:
    codice:
    frame.add(mioJPanel)
    oppure
    codice:
     frame.getContentPane().add(mioJPanel)
    . Mi chiedo quale possa essere la differenza
    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA]getContentPane() o no?

    Originariamente inviato da Marco_P
    ciao a tutti,
    usando le Swing ho notato che quando voglio aggiungere un Panel a un Frame posso farlo in due modi:
    codice:
    frame.add(mioJPanel)
    oppure
    codice:
     frame.getContentPane().add(mioJPanel)
    . Mi chiedo quale possa essere la differenza
    Prima di Java 5 si doveva fare getContentPane().add(....). Poi da Java 5 il add() di JFrame fa un "forward" sul add() del content pane.

    Basta leggere qui: As a conveniance add and its variants, remove and setLayout have been overridden to forward to the contentPane as necessary
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    80
    Hai ragione bastava leggere.
    E' corretto dire che vale la stessa cosa per la getComponents()?
    codice:
    internalframe.getContentPane().getComponents();
    internalframe.getComponents()
    Voglio dire..la seconda chiamata non ritorna solamente i componenti contenuti nell'internal frame?
    Sulla docs in entrambe i casi scrive : Gets all the components in this container.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Marco_P
    E' corretto dire che vale la stessa cosa per la getComponents()?
    codice:
    internalframe.getContentPane().getComponents();
    internalframe.getComponents()
    Sono due cose ben differenti!

    Originariamente inviato da Marco_P
    Voglio dire..la seconda chiamata non ritorna solamente i componenti contenuti nell'internal frame?
    Sì. getComponents() in generale ritorna solo i componenti che un "container" sa di contenere .... non tutto ciò che a loro volta eventualmente contengono.

    Quindi:
    internalframe.getComponents() ritorna solo 1 componente ... è il JRootPane che è il componente principale di un JFrame/JDialog/JInternalFrame ecc...

    internalframe.getContentPane().getComponents() ritorna tutti i componenti principali nel content pane ... che sono quelli che aggiungi tipicamente tu quando crei la tua interfaccia.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava 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 © 2025 vBulletin Solutions, Inc. All rights reserved.