Академический Документы
Профессиональный Документы
Культура Документы
Layouts
Al momento de crear interfaces grficas con JavaFX es necesario hacer uso de layouts, ya que estos permiten la forma en que colocaremos
los diferentes controles/componentes o nodos en una ventana, empecemos con los principales layouts con el que trabajaremos en este
tutorial.
1. VBox: Este layout ordena los componentes de manera vertical, uno debajo de otro, veamos unos ejemplos.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Ahora veamos un ejemplo con relleno de distinta medida, esto tambin es posible aplicar a los dems contenedores
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
?
3. FlowPane: Este layout permite agregar los componentes en filas, uno a la derecha de otro, si en el ancho del contenedor no hay suficiente
espacio para agregar otro componente, el componente se agrega en la siguiente fila.
Fig. 04: FlowPane con relleno de 15px, espaciamiento vertical y horizontal de 10px.
1
2
3
4
5
6
7
8
9
10
11
//y un botn
TextField txtUser = new TextField();
PasswordField txtPass = new PasswordField();
Button btnLog = new Button("Iniciar sesin");
//Creamos un contenedor FlowPane, le agregamos un
//espaciamiento vertical y horizontal de 10px, y un relleno
//de 15px, al final agregamos los controles al contenedor
FlowPane flow = new FlowPane();
flow.setVgap(10);
flow.setHgap(10);
12
13
14
15
flow.setPadding(new Insets(15));
flow.getChildren().addAll(txtUser, txtPass, btnLog);
4. StackPane: Con este layout podemos agregar componentes uno encima de otro, el orden en que se agrega los componentes al contenedor
es importante, ya que el ultimo control en ser agregado es el que estar encima del resto.
1
2
3
4
5
6
7
8
9
10
11
12
13
Importante: Del ejemplo anterior, si deseamos que la caja de texto txtUser, este encima de los dems controles, entonces usamos el mtodo
toFront().
?
txtUser.toFront();
5. TilePane: Este layout acomoda los controles en una matriz, en filas y columnas, cuando creamos un TilePane este tendr 5 columnas por
defecto, pero eso se puede cambiar usando el mtodo setPrefColumns(X), donde "X" es el nmero de columnas, tambin podemos asignar el
nmero de filas deseado con el mtodo setPrefRows(X), y si deseamos podemos cambiar el orden en el que se agregan los controles al
TilePane con el mtodosetOrientation(Orientation.VERTICAL) y setOrientation(Orientation.HORIZONTAL), por defecto los controles se
agregan en forma horizontal, de izquierda a derecha, pero tambin podemos hacer que los controles se agreguen en forma vertical de arriba
hacia abajo, veamos los constructores de este layout(contenedor).
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
Ahorraramos algunas lineas de cdigo si hacemos uso de los constructores del TilePane:
?
1
2
3
4
5
6. GridPane: Este layout es similar al TilePane, pero con la diferencia de que los controles dentro del GridPane pueden ocupar mas de una
columna o fila.
Fig. 08: GridPane con relleno de 15px, espaciamiento vertical y horizontal de 10px
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
7. BorderPane: Este panel brinda 5 regiones, TOP, RIGHT, BOTTOM, LEFT y CENTER, en el cual podemos agregar paneles o controles,
usualmente en la parte superior se ubica la barra de herramientas, en la parte inferior la barra de estado, en la parte izquierda el panel de
navegacin, en la parte derecha informacin adicional, y en la parte central va el rea de trabajo.
Este layout posee solo un mtodo constructor sin parmetros, para agregar un nodo(panel o control) a este contenedor usamos los siguientes
mtodos:
?
1
2
3
4
5
6
7
Y por ltimo, si no deseamos usar layouts, entonces se puede usar coordenadas, para ello hacemos uso del panel o contenedor Group.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15