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

    Differenza tra i vari layout di Swing

    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

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da NoNameoN Visualizza il messaggio
    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?
    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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    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.
    Una risposta incredibilmente esaustiva! E' davvero tutto chiaro e apprezzo molto anche l'efficienza nel rispondere. Grazie di tutto e buona giornata ^-^
    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

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.