No artigo Exemplo de Aplicação Java Swing com BD Oracle - 1, o 1º desta série, tratámos da criação da Base de Dados em Oracle. No 2º artigo, foi criada um package para acesso à base de dados, HelperDB. O 3º artigo tratou da criação de uma biblioteca de classes ao nível da lógica de negócio e acesso a dados.
Este artigo vai tratar da criação do projecto de Interface com o utilizador (GUI - Graphical User Interface) usando classes Swing. Para isso, vamos criar um novo projecto no Net Beans, chamado LibrarySystem:
Este projecto deve ser um Java Desktop Application. Este tipo de projecto fornece um template com a infraestrutura básica de uma aplicação desktop, tal como uma janela principal com uma barra de menu e uma barra de estado.
Depois, vamos seleccionar Basic Application (o outro tipo, Database Application, iremos abordar numa outra série de artigos).
Este tipo de projecto cria de antemão 3 classes:
- LibrarySystemApp.java - é a classe principal da aplicação. A main irá lançar a janela principal. A partir daí, toda a aplicação será guiada por eventos.
- LibrarySystemView.java - é a janela principal:
- LibrarySystemAboutBox.java - é uma janela About (Acerca de...).
Na janela com a vista de projectos podemos ver o novo projecto, assim como os que criámos anteriormente. Para mantêr uma lógica nos nomes dos projectos, alterámos o nome deste projecto para libraryProjectGUI:
1. Construção da interface (GUI)
A partir da Pallete (onde estão os Swing containers, Swing controls, Swing Windows, etc.), arrastamos os objectos de interface que pretendemos ver nas janelas da interface.
Aqui, vamos fazer toda a aplicação na mesma janela.
Vamos começar por acrescentar menus (JMenu) e itens de menu (JMenuItem) na barra de menus que já temos inicialmente.
Criamos um item de menu, Initial Panel, no menu File, que nos permitirá voltar ao ecrã inicial:
E criamos um novo menu, Books, com um item de menu, Manage Books, o qual nos levará à lista e manutenção de livros da biblioteca:
Chegou, então o momento de criar novos painéis (JPanel) que substituirão o painel inicial na janela da aplicação.
Criamos um novo painel para criação e edição de um livro:
E, criamos um painel para listar os livros existentes:
2. Criação de métodos para tratamento de eventos despoletados na GUI
Vamos agora fazer trocar o painel visível, quando é selecionada a opção de menu Manage Books do menu Books.
Quando ocorre um evento "selecionar o item de menu" queremos correr um método para fazer a troca de painéis. Temos duas maneiras de o fazer:
2.1 Com o botão do lado direito sobre o item de menu Manage Books, selecionamos Events --> Action --> actionPerformed:
Isto provoca a geração de código na classe LibrarySystemView.java, associando um novo método ao evento de seleção do item de menu, e criando um template para esse novo método:
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
Em Action, selecionamos Create New Action, e em Action's Method, escrevemos listBooks. O método listBooks() será criado de novo, e será associado ao evento de seleção do item de menu.
@Action
public void listBooks() {
}
No método listBooks(), ou no jMenuItem1ActionPerformed() se optarmos pelo primeiro método, vamos colocar o código para troca de painéis.
@Action
public void listBooks() {
ListBooksJPanel listbooksP = new ListBooksJPanel(this, this.dbo);
this.visiblePanel.setVisible(false);
this.visiblePanel = listbooksP;
listbooksP.setVisible(true);
this.getFrame().setContentPane(listbooksP);
this.getFrame().repaint();
//
}
Antes, tivémos que criar as variáveis de instância seguintes na classe LibrarySystemView:
private HelperDB.DBAccessObj dbo;
private JPanel visiblePanel = null;
É também necessário criar código para ler os livros da base de dados e preencher a tabela no painel ListBooksJPanel. Para isso devem ser usadas as classes da biblioteca de classes criada no artigo anterior.
Se tiverem dificuldades com o código ou quiserem as sources do exemplo, coloquem comentários a este post.
Outros artigos relacionados:
- Exemplo de Aplicação Java Swing com BD Oracle - 1
- Exemplo de Aplicação Java Swing com BD Oracle - 2
- Exemplo de Aplicação Java Swing com BD Oracle - 3
Miguel pode colocar, o zip do codigo fonte? estou com algumas dificuldades
ResponderEliminarAbraço
O zip com as sources do projeto da Interface com o utilizador (GUI), que usa os dois projetos dos artigos anteriores com o mesmo nome (BLL e HelperDB), pode ser downloaded aqui: https://docs.google.com/open?id=0B0zl-Rzbx3qgVHEwM2lWY0FleTQ
Eliminar