JPanel viene aggiunto ad un form ma non viene visualizzato

di il
3 risposte

JPanel viene aggiunto ad un form ma non viene visualizzato

Ciao! Ho creato con NetBeans un JPanel che contiene una sfilza di componenti ma quando cerco di aggiungerlo in un qualsiasi frame o panel non riesco a visualizzarlo. Il nuovo Panel viene creato senza problemi o eccezioni, però quando faccio
add(nuovoPanel)
non si vede nulla.
Qualcuno può spiegarmi se c'è qualcosa che mi sono perso?
Grazie mille

3 Risposte

  • Re: JPanel viene aggiunto ad un form ma non viene visualizzato

    Facendo vari tentativi mi sono accorto che anche se provo ad aggiungere ad un JPanel esistente un nuovo JPanel il secondo non viene aggiunto..quindi la mia domanda diventa: è possibile aggiungere un nuovo JPanel su un JPanel preesistente?
  • Re: JPanel viene aggiunto ad un form ma non viene visualizzato

    Preferisco spiegare in generale.
    In AWT/Swing un componente lo si aggiunge dentro un "contenitore" (qualunque cosa che è/estende java.awt.Container). Il container può avere un layout manager oppure no.
    Se ha un layout manager allora, a seconda di quale è, potrebbe essere necessario specificare dei "constraint" che dicono al layout manager i criteri per disporre/dimensionare il componente.

    Se hai usato il GUI editor di NetBeans, sappi che è abbastanza noto per generare codice prolisso, fumoso e complesso (e aggiungo io: contorto) che tipicamente usa un org.jdesktop.layout.GroupLayout. E sappi che mettere mano a tale codice è molto un bagno di sangue.
    Se il tuo contenitore sta usando quel GroupLayout ci sono sicuramente dei constraint da specificare.

    Altro aspetto importante ma minore è se la aggiunta la fai prima o dopo che il contenitore è già visibile a video. Nel secondo caso il layout va anche rivalidato (se c'è appunto un layout manager).


    P.S. il consiglio che dò sempre è di imparare a scrivere a mano tutto il codice per la GUI, imparando bene l'uso dei layout manager basilari .... non certo quel GroupLayout. E sfruttando anche i concetti della OOP per separare e incapsulare parti distinte della GUI.
  • Re: JPanel viene aggiunto ad un form ma non viene visualizzato

    Grazie mille, ho notato la complessità del Layout Manager di NetBeans; io ho impostato un GridLayout e ho rivalidato, ora funziona grazie mille!
Devi accedere o registrarti per scrivere nel forum
3 risposte