Non appare la tabella nel jPanel

di il
6 risposte

Non appare la tabella nel jPanel

Sto rifacendo un programma che avevo già fatto prima. Teoricamente questa parte dovrebbe essere uguale e nella versione vecchia del programma la tabella appariva, in questa no...
Oltretutto non capisco come faccia ad apparire nel programma vecchio dato che non trovo nessun jpanel.add(tabella)
jPanel16.setLayout(new BorderLayout());
poi creo la tabella e poi scrivo così
  jPanel16.add(tabella);
         jPanel16.add(new JScrollPane());
eppure non va, non appare nessuna tabella e nessuno scrollpane... Grazie...

6 Risposte

  • Re: Non appare la tabella nel jPanel

    p0ll0_ ha scritto:


    jPanel16.setLayout(new BorderLayout());
    poi creo la tabella e poi scrivo così
    jPanel16.add(tabella);
    jPanel16.add(new JScrollPane());
    eppure non va, non appare nessuna tabella e nessuno scrollpane... Grazie...
    Sbagliato. Dato che jPanel16 ha un BorderLayout, fare 2 add senza constraint (NORTH ecc..) fa andare per default in CENTER. Ma due componenti, detto in generale, nella stessa area del BorderLayout NON ci possono stare! Quindi prima mette tabella in CENTER, poi la toglie e la sostituisce con lo scrollpane (che non "vedi" perché vuoto o perlomeno ... lo si vede da un lieve bordino sui lati destro/basso).

    Il modo corretto:
    jPanel16.add(new JScrollPane(tabella));
    (se non ti serve tenere riferimento al JScrollPane per dopo, cosa che raramente serve).
  • Re: Non appare la tabella nel jPanel

    Ho provato a mettere l'ultimo codice che hai postato e non funziona... Uguale a prima...
  • Re: Non appare la tabella nel jPanel

      jPanel16.add(new JScrollPane(tabella), CENTER_ALIGNMENT);
    anche così e non va...
  • Re: Non appare la tabella nel jPanel

    p0ll0_ ha scritto:


      jPanel16.add(new JScrollPane(tabella), CENTER_ALIGNMENT);
    anche così e non va...
    CENTER_ALIGNMENT (è una costante float) non c'entra niente con BorderLayout. I constraint di BorderLayout sono solo le costanti String indicate nel javadoc https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/BorderLayout.html

    Per default è CENTER se non si specifica nulla nella add.
  • Re: Non appare la tabella nel jPanel

    Ok, quindi che devo fare? Grazie...
  • Re: Non appare la tabella nel jPanel

    Ho notato che in InitComponents c'è questo codice
          javax.swing.GroupLayout jPanel16Layout = new javax.swing.GroupLayout(jPanel16);
            jPanel16.setLayout(jPanel16Layout);
            jPanel16Layout.setHorizontalGroup(
                jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 0, Short.MAX_VALUE)
            );
            jPanel16Layout.setVerticalGroup(
                jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 0, Short.MAX_VALUE)
            );
    Che quindi annullava
    jPanel16.setLayout(new BorderLayout());
    questo altro codice che avevo scritto sopra. Adesso avendo messo quest'aultimo codice dopo la tabella si vede... ma la domanda è ... quel codice sopra che cos'è? Grazie...
Devi accedere o registrarti per scrivere nel forum
6 risposte