JavaFX - VBox dei riquadri di layout
Se usiamo VBox come layout nella nostra applicazione, tutti i nodi sono impostati in una singola colonna verticale.
La classe denominata VBox del pacchetto javafx.scene.layoutrappresenta il riquadro VBox. Questa classe contiene cinque proprietà, che sono:
alignment- Questa proprietà rappresenta l'allineamento dei nodi all'interno dei limiti del VBox. È possibile impostare il valore su questa proprietà utilizzando il metodo settersetAlignment().
fillHeight- Questa proprietà è di tipo booleano e impostandola come true; i nodi ridimensionabili nel VBox vengono ridimensionati all'altezza del VBox. È possibile impostare il valore su questa proprietà utilizzando il metodo settersetFillHeight().
spacing- Questa proprietà è di tipo double e rappresenta lo spazio tra i figli del VBox. È possibile impostare il valore su questa proprietà utilizzando il metodo settersetSpacing().
Oltre a questi, questa classe fornisce anche i seguenti metodi:
setVgrow()- Imposta la priorità di crescita verticale per il bambino quando è contenuto da un VBox. Questo metodo accetta un nodo e un valore di priorità.
setMargin()- Utilizzando questo metodo, puoi impostare i margini sul VBox. Questo metodo accetta un nodo e un oggetto della classe Insets (un insieme di offset interni per i 4 lati di un'area rettangolare)
Esempio
Il seguente programma è un esempio di VBoxdisposizione. In questo, stiamo inserendo un campo di testo e due pulsanti, play e stop. Questo viene fatto con una spaziatura di 10 e ciascuno con margini con dimensioni - (10, 10, 10, 10).
Salva questo codice in un file con il nome VBoxExample.java.
import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import javafx.scene.layout.VBox;
public class VBoxExample extends Application {
@Override
public void start(Stage stage) {
//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");
//Instantiating the VBox class
VBox vBox = new VBox();
//Setting the space between the nodes of a VBox pane
vBox.setSpacing(10);
//Setting the margin to the nodes
vBox.setMargin(textField, new Insets(20, 20, 20, 20));
vBox.setMargin(playButton, new Insets(20, 20, 20, 20));
vBox.setMargin(stopButton, new Insets(20, 20, 20, 20));
//retrieving the observable list of the VBox
ObservableList list = vBox.getChildren();
//Adding all the nodes to the observable list
list.addAll(textField, playButton, stopButton);
//Creating a scene object
Scene scene = new Scene(vBox);
//Setting title to the Stage
stage.setTitle("Vbox Example");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
Compilare ed eseguire il file java salvato dal prompt dei comandi utilizzando i seguenti comandi.
javac VBoxExample.java
java VBoxExample.java
All'esecuzione, il programma di cui sopra genera una finestra JavaFX come mostrato di seguito.