Ciao a tutti forumiani!
Sapreste spiegarmi in parole povere la differenza che c'è tra i vari layout? Ad esempio in base a cose si sceglie un BorderLayout anziché un BoxLayout?
Ciao a tutti forumiani!
Sapreste spiegarmi in parole povere la differenza che c'è tra i vari layout? Ad esempio in base a cose si sceglie un BorderLayout anziché un BoxLayout?
asd il corrispondente italiano di lol (lot of laught) non ha un significato è usato nei giochi di ruolo online perche la destra è impegnata nel movimento del personaggio![]()
Ci sono svariati layout manager tra quelli più semplici di AWT/Swing: FlowLayout, BorderLayout, GridLayout, GridBagLayout, CardLayout. Ciascuno di questi ha le sue caratteristiche, i suoi vincoli, limitazioni, ecc...
La cosa importante da sapere è che in una applicazione Swing, NON necessariamente se ne deve usare solo uno e basta. Una buona "abilità" che il programmatore in Swing(/AWT) deve avere è sapere "inscatolare" componenti dentro contenitori, dentro altri contenitori, ecc... Eventualmente/tipicamente usando anche più e vari layout manager.
BorderLayout ad esempio contempla solo 5 aree, denominate convenzionalmente NORTH, SOUTH, EAST, WEST e CENTER. La parte CENTER occupa tutto il contenitore a meno dello spazio eventuale preso dalle altre 4 aree.
BoxLayout invece organizza i componenti "in fila" che può essere orizzontale o verticale (con la possibilità di gestire l'allineamento nel senso trasversale al senso della fila).
Nessuna applicazione, per quanto so, usa solo uno o solo l'altro. A meno che sia un esempietto basilare o robetta del genere. Magari una applicazione ha bisogno di una area centrale e una status bar al fondo (sotto). Allora può usare come layout del content-pane un BorderLayout. In SOUTH ci mette una JLabel di status e magari in CENTER ci mette un JScrollPane che ha come view un pannello che ha a sua volta un BoxLayout verticale in cui ci sono vari componenti da mostrare in fila verticale.
Ecco, i ragionamenti da fare sono come questi. E questo può servire non solo per strutturare visivamente la interfaccia grafica ma anche per strutturare e separare bene i concetti a livello della OOP. Nell'esempio fatto poco fa, ad esempio quel "pannello" potrebbe essere un'altra classe MainPanel che estende JPanel e incapsula solo la gestione per quella parte centrale.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
asd il corrispondente italiano di lol (lot of laught) non ha un significato è usato nei giochi di ruolo online perche la destra è impegnata nel movimento del personaggio![]()