JavaFX - painéis de layout (contêineres)
Depois de construir todos os nós necessários em uma cena, geralmente os organizaremos em ordem.
Esta disposição dos componentes dentro do contêiner é chamada de Layout do contêiner. Também podemos dizer que seguimos um layout, pois inclui colocar todos os componentes em uma determinada posição dentro do contêiner.
JavaFX fornece vários layouts predefinidos, como HBox, VBox, Border Pane, Stack Pane, Text Flow, Anchor Pane, Title Pane, Grid Pane, Flow Paneletc.
Cada um dos layouts mencionados acima é representado por uma classe e todas essas classes pertencem ao pacote javafx.layout. A classe chamadaPane é a classe base de todos os layouts em JavaFX.
Criando um Layout
Para criar um layout, você precisa -
- Crie um nó.
- Instancie a respectiva classe do layout necessário.
- Defina as propriedades do layout.
- Adicione todos os nós criados ao layout.
Criação de nós
Em primeiro lugar, crie os nós necessários do aplicativo JavaFX instanciando suas respectivas classes.
Por exemplo, se você deseja ter um campo de texto e dois botões, a saber, reproduzir e parar em um layout HBox - você terá que criar inicialmente esses nós conforme mostrado no seguinte bloco de código -
//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");
Instanciando a respectiva classe
Depois de criar os nós (e concluir todas as operações neles), instancie a classe do layout necessário.
Por exemplo, se você deseja criar um layout Hbox, você precisa instanciar esta classe da seguinte maneira.
HBox hbox = new HBox();
Definindo as propriedades do layout
Depois de instanciar a classe, você precisa definir as propriedades do layout usando seus respectivos métodos de definição.
Por exemplo - se você deseja definir o espaço entre os nós criados no layout HBox, então você precisa definir o valor para a propriedade chamada espaçamento. Isso pode ser feito usando o método settersetSpacing() como mostrado abaixo -
hbox.setSpacing(10);
Adicionando o Objeto Forma ao Grupo
Finalmente, você precisa adicionar o objeto da forma ao grupo, passando-o como um parâmetro do construtor, conforme mostrado abaixo.
//Creating a Group object
Group root = new Group(line);
Layout de painéis
A seguir estão os vários painéis (classes) de layout fornecidos pelo JavaFX. Essas classes existem no pacotejavafx.scene.layout.
S.Não | Forma e descrição |
---|---|
1 | HBox O layout HBox organiza todos os nós em nosso aplicativo em uma única linha horizontal. A classe chamada HBox do pacote javafx.scene.layout representa o layout da caixa horizontal de texto. |
2 | VBox O layout VBox organiza todos os nós em nosso aplicativo em uma única coluna vertical. A classe chamada VBox do pacote javafx.scene.layout representa o layout da caixa vertical de texto. |
3 | BorderPane O layout Border Pane organiza os nós em nosso aplicativo nas posições superior, esquerda, direita, inferior e central. A classe chamada BorderPane do pacote javafx.scene.layout representa o layout do painel de borda. |
4 | StackPane O layout do painel de pilha organiza os nós em nosso aplicativo em cima de outro, exatamente como em uma pilha. O nó adicionado primeiro é colocado na parte inferior da pilha e o próximo nó é colocado no topo dela. A classe chamada StackPane do pacote javafx.scene.layout representa o layout do painel de pilha. |
5 | TextFlow O layout Fluxo de texto organiza vários nós de texto em um único fluxo. A classe chamada TextFlow do pacote javafx.scene.layout representa o layout do fluxo de texto. |
6 | AnchorPane O layout do painel Anchor ancora os nós em nosso aplicativo a uma distância específica do painel. A classe chamada AnchorPane do pacote javafx.scene.layout representa o layout do painel âncora. |
7 | TilePane O layout Painel de blocos adiciona todos os nós de nosso aplicativo na forma de blocos de tamanhos uniformes. A classe chamada TilePane do pacote javafx.scene.layout representa o layout TilePane. |
8 | GridPane O layout do painel de grade organiza os nós em nosso aplicativo como uma grade de linhas e colunas. Este layout é útil ao criar formulários usando JavaFX. A classe chamada GridPane do pacote javafx.scene.layout representa o layout GridPane. |
9 | FlowPane O layout da área de janela de fluxo envolve todos os nós em um fluxo. Um painel de fluxo horizontal envolve os elementos do painel em sua altura, enquanto um painel de fluxo vertical envolve os elementos em sua largura. A classe chamada FlowPane do pacote javafx.scene.layout representa o layout do painel de fluxo. |