Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    incolonnare verticalmente dei jpanel in java

    Ho dei problemi nell'incolonnare verticalmente 5 pannelli in java. Di preciso la struttura dovrebbe essere un pannello di base che contiene 6 pannelli, 5 allineati verticalmente sulla sinistra ed uno sulla destra che occupa il restante spazio. Qualcuno potrebbe aiutarmi a capire quali layout utilizzare?
    Grazie a chi risponderà

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da likeamelody Visualizza il messaggio
    Di preciso la struttura dovrebbe essere un pannello di base che contiene 6 pannelli, 5 allineati verticalmente sulla sinistra ed uno sulla destra che occupa il restante spazio. Qualcuno potrebbe aiutarmi a capire quali layout utilizzare?
    Grazie a chi risponderà
    Premetto che non mi è chiaro se quella che hai descritto è l'intera interfaccia utente (es. l'intero contenuto di un JFrame) o solo una parte. Ma poco cambierebbe. Prendo per buono il fatto di considerare un pannello principale .... se poi invece fosse già il content-pane di un JFrame, cambia davvero poco/nulla.

    Quello che hai chiesto si può fare e anche in diversi modi. Tutto però dipende da alcuni criteri di dimensionamento che non hai precisato. Infatti le questioni potrebbero essere:
    a) i 5 pannelli sulla sinistra devono adattarsi per stare tutti alla stessa dimensione?
    b) indipendentemente da a), l'insieme dei 5 pannelli deve occupare verticalmente tutto lo spazio del pannello principale? Oppure no? (in quest'ultimo caso, il pannello dx potrebbe essere più alto).


    Comunque ecco alcune soluzioni:

    Soluzione 1).
    - Pannello principale con un BorderLayout:
    --- In WEST c'è un altro pannello con un GridLayout che contiene i tuoi 5 pannelli in verticale (quindi 5 righe x 1 colonna). Essendo un GridLayout, i pannelli sono tutti della stessa dimensione. Ed essendo in WEST, l'insieme dei pannelli occupa tutto lo spazio verticale del pannello principale.
    --- In CENTER c'è il pannello a destra. Essendo in CENTER, occupa tutto lo spazio "che resta".


    Soluzione 2)
    - Pannello principale con un GridBagLayout (che da solo è in grado di gestire tutti i 6 pannelli):
    - Una colonna di 5 celle, tutte queste celle possono avere lo stesso weighty (es. 1) in modo che si spartiscano equamente lo spazio (ma puoi cambiare le proporzioni se serve).
    - Un'altra colonna a destra che "spanna" su 5 righe. Qui puoi anche fare in modo che il pannello occupi tutto lo spazio disponibile oppure stia alla sua dimensione "preferita" (e in quest'ultimo caso, ancorarlo verso il lato che vuoi).


    Ma ce ne sono altre di possibilità ... ne ho dette giusto 2.
    Ultima modifica di andbin; 29-04-2015 a 17:27
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Tag per questa discussione

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.