CardLayout

Um gerenciador do tipo CardLayout empilha os componentes de um container de tal forma que apenas o componente que está no topo permanece visível. Esse gerenciador implementa a interface LayoutManager2.

Os métodos do gerenciador estabelecem funcionalidades que permitem "navegar" entre os componentes empilhados, determinando qual item deve estar visível em um dado momento. Os métodos de navegação first(), next(), previous() e last() permitem realizar uma varredura seqüencial pelos componentes de container especificado, cujo gerenciador de layout deve ser do tipo CardLayout.

O método show() permite selecionar um componente para exposição diretamente através de uma string, que é especificada como uma restrição quando da adição do componente ao container, como no seguinte fragmento:

        Panel p = new Panel();
        cm = new CardLayout();
        p.setLayout(cm);
        Button b = new Button("Teste");
        p.add(b, b.getLabel());
    

que permitiria a exibição desse botão com a invocação

        cm.show(p, b.getLabel());
    

Tipicamente, os componentes manipulados por um gerenciador do tipo CardLayout são containers, os quais por sua vez utilizam qualquer outro tipo de gerenciador de layout. Esse exemplo ilustra o uso de CardLayout para organizar cinco rótulos distintos em um container alocado ao elemento central de um frame com BorderLayout. Os quatro elementos periféricos do BorderLayout são usados para navegar entre os rótulos do CardLayout central:

Elemento central com CardLayout

Nesse exemplo, o rótulo Primeiro painel é inicialmente exibido por estar no topo da pilha do objeto Panel com gerenciador do tipo CardLayout. Se o botão Próximo for pressionado, o rótulo Segundo painel será exibido.


© Ivan Luiz Marques Ricarte
DCA/FEEC/UNICAMP

Last modified: Sat Aug 12 12:21:22 Hora padrão leste Am. Sul 2000