Neste artigo vamos criar um projeto baseado em Java Swing para desenvolver a interface gráfica com o utilizador (GUI), que complemente o que já foi feito anteriormente, que é tratado em:
- Exemplo de Aplicação Java Swing com BD Oracle - 1 (criação da Base de Dados)
- Exemplo de Aplicação Java Swing com BD Oracle - 2 (projeto HelperDB para acesso à BD)
- Exemplo de Aplicação Java Swing com BD Oracle - 3 (projeto librarySystemBLL / classes da BLL)
- Exemplo de Aplicação Java Swing sem JSR - 1
No NetBeans 7.1, vamos criar um projeto Java Application:
Um projeto Java Application cria automaticamente uma class com o método main().
Na verdade, não precisamos dessa classe, porque vamos criar uma classe JFrame, a qual automaticamente cria um método main() que lança a frame e torna-a visível.
De qualquer forma, e antes de criarmos a JFrame, vamos adicionar as referências necessárias ao nosso projeto. Precisamos de adicionar, nas libraries do projeto, referências para os projetos HelperDB e
librarySystemBLL. São também necessárias referências para os JARs "ojdbc" que vêm com o Oracle XE, tal como foi feito anteriormente nos outros dois projetos.
Agora, criamos o JFrame, o qual será a janela principal da aplicação:
- com o cursor do rato sobre o nome do package (librarysystemgui), clicamos no botão do lado direito do rato e selecionamos New --> JFrame Form...
- Damos-lhe um nome (librarySystem):
E o JFrame é criado:
Um
JFrame, tal como um JDialog ou um JPanel, é uma classe Swing, sobre a qual o NetBeans permite compor elementos Swing graficamente, gerando ele o código Java correspondente.
Os elementos Swing devem ser arrastados a partir da pallete e largados sobre o JFrame (ou Dialog ou Panel) nos locais onde os queremos.:
Arrastar uma barra de menu (menu bar) a partir da pallete, para o JFrame. Depois, arrastar dois menus (Book and Loans) para a barra de manus.
Depois arrastamos um menuItem para o menu Books, e alteramos-lhe o texto para List Books:
Depois disto, podemos apagar a classe inicial que contém o método main() de que não precisamos.
Agora, como queremos ter vários painéis colocados (um de cada vez) sobre a parte central do frame principal, vamos arrastar um JPanel para a área central do JFrame, e chamamos a esse JPanel, mainPanel:
Agora, deixamos o mainPanel vazio, e vamos criar um novo JPanel Form (listBooksJPanel.java:
Arrastamos um JTable para o novo JPanel, e dimensionamo-lo de forma a ocupar todo o espaço disponível.
Depois, precisamos de configurar o JTable, de forma que as colunas tenham os nomes que pretendemos. Para isso, devemos clicar sobre o objeto JTable object e selecionar Costumize Code.
Sobre a Code customizer window, alterar o "default code" para "custom
property", tal como na figura abaixo, e fazemos as alterações ilustradas:
Agora as colunas intitulam-se Title, Author, Editor, Edition and Isbn.
Quando a editar o ListBooksJPanel.java, no NetBeans, clicamos no botão Source
(ao lado do botão Design), de forma a ver o código que foi gerado para a parte gráfica.
Precisamos de povoar a JTable com informação dos livros na base de dados, logo que o ListBooksJPanel é criado, em tempo de execução.
Para isso, vamos adicionar algum código no método criador da classe gerada, após a chamada a InitComponents().
Adicionar o código seguinte:
try {
List<Book> lsBooks = Book.retrieveAllBooks(new DBAccessObj());
limparJTableBooks();
if(!lsBooks.isEmpty()){
javax.swing.table.DefaultTableModel model1 = (javax.swing.table.DefaultTableModel)jTable1.getModel();
Iterator<Book> iterBooks = lsBooks.iterator();
while(iterBooks.hasNext()){
Book book = iterBooks.next();
//
int id = book.getID();
String title = book.getTitle();
//
String authors = "";
//
Iterator<Author> bookAuthors = book.getAuthors().iterator();
while(bookAuthors.hasNext()){
Author au = bookAuthors.next();
authors += au.getSurname() + ", " + au.getName() + "; ";
}
//
String editor = book.getEditor();
String edition = "";
edition = book.getEdition();
//
String isbn = book.getISBN();
//
model1.addRow(new Object[]{title, authors, editor, edition, isbn});
}
}
} catch (SQLException ex) {
System.out.println(ex);
}
Lembremo-nos de que é necessário ter adicionado referências para os dois projetos anteriormente desenvolvidos, nas libraries deste projeto.
Voltando à JFrame, queremos tornar o painel listBooksJPanel visível, quando o utilizador seleciona a opção de menu ListBooks.
Fazer double click sobre o menu item ListBooks, de forma que seja criado um handler method. Acrescentar ao handler o código da figura seguinte:
Agora, vamos correr o exemplo... (claro que precisamos de ter dados na base de dados).
Como habitualmente, podem colocar as vossas dúvidas nos comentários ao artigo...
Sem comentários:
Enviar um comentário