Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150

    [Swing] Creare spazio aggiuntivo con GridBag Layout

    Ciao a tutti, non riesco a risolvere questo problema.

    Nel mio pannello principale ho un layout di tipo GridBag.
    Ho un immagine di background, e in questa immagine, nella parte superiore ho una scritta.

    La mia griglia del gridbage' di 3x2 (3 righe, 2 colonne).

    Ora, creandola con i seguenti settaggi:

    Codice PHP:

            lim
    .insets.top 5;
            
    lim.insets.bottom 5;
            
    lim.insets.left 5;
            
    lim.insets.right 5
    e lasciando il resto di default (weightx, weighty a 0, ed i pesi ad 1) ottengo ovviamente una distribuzione della griglia nella parte centrale del panello.
    Il problema e' che , come scritto sopra, la mia immagine di background ha una scritta che non deve essere sovrastata dagli elementi della mia griglia.
    Con questi settaggi infatti, la mia tabella finisce proprio sopra la scritta.
    Ora la domanda e': come faccio a spostare in blocco tutta la mia griglia verso il basso?
    E' possibile trovare un modo ?Tipo inserire "finte" celle vuote in alto in modo da spostare verso il basso il tutto?

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

    Re: [Swing] Creare spazio aggiuntivo con GridBag Layout

    Originariamente inviato da Skaffa
    Ora la domanda e': come faccio a spostare in blocco tutta la mia griglia verso il basso?
    E' possibile trovare un modo ?Tipo inserire "finte" celle vuote in alto in modo da spostare verso il basso il tutto?
    Innanzitutto immagino (e spero) che per "immagine di background" tu intenda ad esempio un JPanel in cui disegni la immagine sul Graphics e il pannello contiene appunto altri componenti con un certo layout.

    Le soluzioni sono diverse. Se vuoi che la griglia occupi comunque tutto lo spazio della immagine puoi certamente mettere delle celle "trasparenti" (basta un JPanel non "opaco" dimensionato con un certo preferredSize/maximumSize a seconda di come vuoi che si espanda). O in alternativa fare in modo che il GridLayout sia contenuto in un altro layout in cui fai "spazio" (sempre con qualcosa di non opaco) sfruttando un altro layout manager.
    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
    Mar 2007
    Messaggi
    150
    Non so come fare pero' andbin.

    L'immagine di background e' contenuta in un pannello con un overlayout.

    Edit.
    Forse ho risolto anche se non mi sembra una soluzione molto ortodossa.

    Allora:

    - il mio pannello principale ha un layout di tipo Overlayout. Mettiamo che questo sia il pannello: JPanel A
    - la mia immagine e' contenuta in un JPanel B;
    - creo un jpanel C con un layout di tipo GridBoxVertical.
    In questo JPanel C inserisco a loro volta 2 pannelli: un JPanel D, vuoto, con una dimensione predefinita. Ed un altro JPanel E con un ordinamento di tipo Gridbag che contiene finalmente la mia griglia.

    Un po' articolata ..

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Skaffa
    - il mio pannello principale ha un layout di tipo Overlayout.
    Se intendi javax.swing.OverlayLayout è un conto, altrimenti non ho idea di cosa voglia dire e cosa sia "Overlayout".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    Sisi, intendevo quello, ho sbagliato a scriverlo

    Codice PHP:
    OverlayLayout layout = new OverlayLayout(contenitore);
            
    contenitore.setLayout(layout

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.