Por vezes surge a necessidade de organizar a interface gráfica de uma aplicação em painéis separados que são apresentados ao utilizador em função de opções que ele faz, por exemplo, num menu.
Utilizando o Netbeans (ferramenta que uso para criação de aplicações em Java), ao criar uma nova aplicação Java desktop, são criados vários ficheiros sendo que, um deles, é a aplicação principal (normalmente uma classe com a designação XPTOView.java). No painel inspector, vemos que este formulário é composto por vários objectos:
- FrameView – a janela propriamente dita
- mainPanel – um JPanel onde são colocados os diversos controlos
- menuBar – um JMenuBar: o menu que é apresentado no topo do ecrã
- statusPanel – um painel que faz a divisão do painel principal e apresenta uma barra barra de estado no rodapé
O Netbeans suporta este conceito de forma muito simples.
1.Crie uma nova aplicação Java Desktop (Basic application).
2.No painel Inspector, clicar com o botão direito do rato no mainPanel e definir o layout como CardLayout.
3.Ainda no Inspector e sobre o mainPanel clicar com o botão direito do rato e fazer "Add from Panel" / "Swing containers" e adicionar quantos painéis os desejados.
4.Cada painel associado vai ter um "cardname" (veja o painel Properties a secção Layout de cada “subpainel”).
5.Ao menu adicione alguns “menu items” por exemplo no menu File.
6.Desenhar os paineis...
7.A cada item do menu que adicionou em 5 ligue os respectivos eventos.
8.Em cada evento o que vamos fazer é indicar qual o painel a mostrar no mainPanel. Para tal temos de criar uma instância do objecto Cardlyout e indicar-lhe qual o card a mostrar:
1.//Obtém a instância do cardlayout associado ao mainPanel
CardLayout cl = (CardLayout)(mainPanel.getLayout());
//Activa o painel cujo card name é card2.
cl.show(mainPanel, "card2");

Sem comentários:
Enviar um comentário