1 de ago de 2014

Organizando conteúdo em paineis com o TabPane

Anteriormente no nosso blog, apresentamos diversas formas de gerenciamento de layout:


Uma forma básica de se dispor conteúdo, no entanto, está em disponibilizar eles em paineis. Hoje vamos apresentar como apresentar conteúdos usando o TabPane.

TabPane

Para organizarmos  os componentes em paineis acessados através de abas, podemos utilizar a classe TabPane, onde podemos adicionar paineis e o JavaFX automaticamente irá organizar eles em abas, veja:


Criando e customizando o TabPane

Criar um painel de Abas não é nada difícil. Você deve saber que a classe TabPane herda de nó e tem um atributo getTabs que retorna uma lista de abas, onde você pode adicionar instâncias de Tab, que representam uma Aba. Cada Aba tem como principais atributos o texto, um gráfico que representa um ícone e se a aba é "fechável" ou não. Veja abaixo como fica o código para criar o painel que mostramos acima:

// criamos o painel
TabPane painelAbas = new TabPane();
// criando paineis de abas, o construtor recebe o nome da aba
Tab aba1 = new Tab("Aba 1");
Tab aba2 = new Tab("Aba 2");
Tab aba3 = new Tab("Aba 3");
//configuramos o conteúdo de cada aba, que aceita qualquer tipo de Nó
aba1.setContent(new Label("Configurando como conteúdo um label..."));
aba2.setContent(new Button("Um botão de conteúdo"));
aba3.setContent(new Rectangle(150, 50));
// abas podem ser fechadas, ou não. Por padrão elas são.
aba1.setClosable(false);
aba2.setClosable(false);
aba3.setClosable(true);
// podemos adicionar ícones as abas
aba1.setGraphic(new ImageView(new Image(getClass().getResourceAsStream("coracao.png"))));
aba2.setGraphic(new ImageView(new Image(getClass().getResourceAsStream("fogo.png"))));
aba3.setGraphic(new ImageView(new Image(getClass().getResourceAsStream("agua.png"))));
// agora adicionamos todas as abas de vez
painelAbas.getTabs().addAll(aba1, aba2, aba3);

Para o a instância do TabPane, temos um atributo que permite escolher o lado que a Aba pode ficar: em baixo, à esquerda, à direita ou acima (padrão). Isso é possível através do método setSide, que aceita um dos valores do Enum javafx.geometry.Side. Por exemplo, a chamada do método setSide(Side.BOTTOM) gera o seguinte:



Conclusão

Apresentamos o painel de Abas do JavaFX! O nosso próximo objetivo é o Accordion e aí fecharemos os principais controles. Acesse o código completo no github

Estamos próximos de cobrir todos os aspectos básicos do JavaFX! Os tópicos desse blog serão organizados em um mini ebook para principiantes na tecnologia e será disponibilizado gratuitamente!

Nenhum comentário:

Postar um comentário