JavaFX - Pannelli di layout (contenitori)
Dopo aver costruito tutti i nodi richiesti in una scena, generalmente li sistemeremo in ordine.
Questa disposizione dei componenti all'interno del contenitore è chiamata Layout del contenitore. Possiamo anche dire che abbiamo seguito un layout poiché include il posizionamento di tutti i componenti in una posizione particolare all'interno del contenitore.
JavaFX fornisce diversi layout predefiniti come HBox, VBox, Border Pane, Stack Pane, Text Flow, Anchor Pane, Title Pane, Grid Pane, Flow Panel, eccetera.
Ciascuno dei layout sopra menzionati è rappresentato da una classe e tutte queste classi appartengono al pacchetto javafx.layout. La classe denominataPane è la classe base di tutti i layout in JavaFX.
Creazione di un layout
Per creare un layout, è necessario:
- Crea nodo.
- Istanziare la rispettiva classe del layout richiesto.
- Imposta le proprietà del layout.
- Aggiungi tutti i nodi creati al layout.
Creazione di nodi
Prima di tutto, crea i nodi richiesti dell'applicazione JavaFX istanziando le rispettive classi.
Ad esempio, se vuoi avere un campo di testo e due pulsanti, cioè riproduci e interrompi in un layout HBox - dovrai inizialmente creare quei nodi come mostrato nel seguente blocco di codice -
//Creating a text field
TextField textField = new TextField();
//Creating the play button
Button playButton = new Button("Play");
//Creating the stop button
Button stopButton = new Button("stop");
Istanziare la rispettiva classe
Dopo aver creato i nodi (e aver completato tutte le operazioni su di essi), istanziare la classe del layout richiesto.
Ad esempio, se desideri creare un layout Hbox, devi istanziare questa classe come segue.
HBox hbox = new HBox();
Impostazione delle proprietà del layout
Dopo aver istanziato la classe, è necessario impostare le proprietà del layout utilizzando i rispettivi metodi setter.
Ad esempio: se si desidera impostare lo spazio tra i nodi creati nel layout HBox, è necessario impostare il valore sulla proprietà denominata spaziatura. Questo può essere fatto usando il metodo settersetSpacing() come mostrato di seguito -
hbox.setSpacing(10);
Aggiunta dell'oggetto forma al gruppo
Infine, è necessario aggiungere l'oggetto della forma al gruppo passandolo come parametro del costruttore come mostrato di seguito.
//Creating a Group object
Group root = new Group(line);
Riquadri di layout
Di seguito sono riportati i vari riquadri di layout (classi) forniti da JavaFX. Queste classi esistono nel pacchettojavafx.scene.layout.
S.No | Forma e descrizione |
---|---|
1 | HBox Il layout HBox dispone tutti i nodi nella nostra applicazione in una singola riga orizzontale. La classe denominata HBox del pacchetto javafx.scene.layout rappresenta il layout della casella orizzontale del testo. |
2 | VBox Il layout VBox dispone tutti i nodi nella nostra applicazione in un'unica colonna verticale. La classe denominata VBox del pacchetto javafx.scene.layout rappresenta il testo Layout riquadro verticale. |
3 | BorderPane Il layout del riquadro dei bordi dispone i nodi nella nostra applicazione nelle posizioni superiore, sinistra, destra, inferiore e centrale. La classe denominata BorderPane del pacchetto javafx.scene.layout rappresenta il layout del riquadro del bordo. |
4 | StackPane Il layout del riquadro dello stack dispone i nodi nella nostra applicazione uno sopra l'altro proprio come in uno stack. Il nodo aggiunto per primo viene posizionato in fondo alla pila e il nodo successivo viene posizionato sopra di esso. La classe denominata StackPane del pacchetto javafx.scene.layout rappresenta il layout del riquadro dello stack. |
5 | TextFlow Il layout Flusso di testo dispone più nodi di testo in un unico flusso. La classe denominata TextFlow del pacchetto javafx.scene.layout rappresenta il layout del flusso di testo. |
6 | AnchorPane Il layout del riquadro Ancora fissa i nodi nella nostra applicazione a una distanza particolare dal riquadro. La classe denominata AnchorPane del pacchetto javafx.scene.layout rappresenta il layout del riquadro di ancoraggio. |
7 | TilePane Il layout Tile Pane aggiunge tutti i nodi della nostra applicazione sotto forma di piastrelle di dimensioni uniformi. La classe denominata TilePane del pacchetto javafx.scene.layout rappresenta il layout TilePane. |
8 | GridPane Il layout del riquadro a griglia dispone i nodi nella nostra applicazione come una griglia di righe e colonne. Questo layout è utile durante la creazione di moduli utilizzando JavaFX. La classe denominata GridPane del pacchetto javafx.scene.layout rappresenta il layout GridPane. |
9 | FlowPane Il layout del riquadro di flusso avvolge tutti i nodi in un flusso. Un riquadro di flusso orizzontale avvolge gli elementi del riquadro alla sua altezza, mentre un riquadro di flusso verticale avvolge gli elementi alla sua larghezza. La classe denominata FlowPane del pacchetto javafx.scene.layout rappresenta il layout del riquadro di flusso. |