JavaFX - Pannelli di layout HBox
Se usiamo HBox nel layout nella nostra applicazione, tutti i nodi sono impostati su una singola riga orizzontale.
La classe denominata HBox del pacchetto javafx.scene.layoutrappresenta il riquadro HBox. Questa classe contiene cinque proprietà, ovvero:
alignment- Questa proprietà rappresenta l'allineamento dei nodi nei limiti dell'HBox. È possibile impostare il valore su questa proprietà utilizzando il metodo settersetAlignment().
fillHeight- Questa proprietà è di tipo booleano e impostandola su true, i nodi ridimensionabili nell'HBox vengono ridimensionati all'altezza dell'HBox. È possibile impostare il valore su questa proprietà utilizzando il metodo settersetFillHeight().
spacing- Questa proprietà è di tipo doppio e rappresenta lo spazio tra i figli dell'HBox. È possibile impostare il valore su questa proprietà utilizzando il metodo settersetSpacing().
Oltre a questi, questa classe fornisce anche un paio di metodi, che sono:
setHgrow()- Imposta la priorità di crescita orizzontale per il bambino quando è contenuto da un HBox. Questo metodo accetta un nodo e un valore di priorità.
setMargin()- Usando questo metodo, puoi impostare i margini sull'HBox. Questo metodo accetta un nodo e un oggetto della classe Insets (un insieme di offset interni per il 4 lato di un'area rettangolare).
Esempio
Il seguente programma è un esempio del layout HBox. Qui stiamo inserendo un campo di testo e due pulsanti, riproduci e interrompi. 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 HBoxExample.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.HBox;
public class HBoxExample 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 HBox class
HBox hbox = new HBox();
//Setting the space between the nodes of a HBox pane
hbox.setSpacing(10);
//Setting the margin to the nodes
hbox.setMargin(textField, new Insets(20, 20, 20, 20));
hbox.setMargin(playButton, new Insets(20, 20, 20, 20));
hbox.setMargin(stopButton, new Insets(20, 20, 20, 20));
//retrieving the observable list of the HBox
ObservableList list = hbox.getChildren();
//Adding all the nodes to the observable list (HBox)
list.addAll(textField, playButton, stopButton);
//Creating a scene object
Scene scene = new Scene(hbox);
//Setting title to the Stage
stage.setTitle("Hbox 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 HBoxExample.java
java HBoxExample.java
All'esecuzione, il programma di cui sopra genera una finestra JavaFX come mostrato di seguito.