Mini Curso - Programação de Interfaces Gráficas - aula 1
1. Programação de Interfaces
Gráficas
Aula 1
Mini Curso
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TRIÂNGULO MINEIRO – Campus Avançado Uberlândia
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
2. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Abrangência do Curso
• Criação de Interfaces Gráficas com Swing;
• Uso do framework Beans Binding para
efetuar o link dos componentes com os
objetos;
• Uso do padrão MVC;
• Uso de regionalização;
• Introdução à Persistência de Objetos.
3. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Objetivos Aula 1
• Obter uma visão geral de componentes
Swing;
• Organizar um projeto no padrão MVC.
4. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Introdução
• Uma interface gráfica com o usuário
apresenta uma interface visual para um
Software;
• Em Java existem basicamente as APIs:
Swing, SWT e AWT.
Componentes AWT: Label, Button, TextField, List, etc.
Componentes Swing: JLabel, JButton, JTextField, JList, etc.
Componentes SWT: Label, Button, Text, List, etc
5. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
AWT
• API padrão entre 1995-1998;
• Perdeu popularidade por ter dependência
com a plataforma local;
• Os componentes awt se situam no pacote
java.awt.
6. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Swing
• API escrita puramente em Java;
• Padrão desde 1998;
• Componentes podem ser estendidos ou
modificados;
• Os componentes swing se situam no
pacote javax.swing.
7. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Mapa de Componentes
Swing/AWT
• Swing em azul;
• AWT em
amarelo.
8. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Principais componentes
Swing
• Jframe – janela (ou quadro) de nível mais
alto;
Alguns métodos interessantes para um quadro (JFrame):
dispose( ): fecha a janela e libera seus recursos para o sistema,
setIconImage( ): especifica um ícone (objeto Image),
setTitle( ): muda o texto da barra de título,
setResizeable( ): que especifica um boolean para determinar se o
quadro será redimensionável ou não,
setVisible( ): exibir o quadro,
setSize( ): que especifica o tamanho do quadro,
setLocation( ): que especifica a localização do quadro na tela.
9. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
NetBeans
• Ambiente de Desenvolvimento open-
source escrito em Java;
• Alta produtividade em aplicações
Desktop, Java ME, etc..;
• Integração perfeita com os principais
frameworks da plataforma Java
http://www.netbeans.org
10. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto -
criação
11. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
criação de pacotes
12. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Adicionando um JFrame
13. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Editando propriedades
JFrame
•
14. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Adicionando um Panel
•
15. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Editando borda
•
16. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Adicionando Componentes
• Adicione dois Label, um TextField, um
Password Field, um Separator, um Button,
e deixe a aplicação semelhante à imagem
abaixo:
17. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Adicionando Componentes
• Edite o nome dos componentes abaixo
(apertando F2 em cada componente):
18. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Adicionando Componentes
• Adicione um novo pacote chamado
view.img, e dentro deste, coloque uma
imagem para a tela de login
19. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Adicionando Imagem
• Adicione um Jlabel, e pela propriedade
icon, adicione a imagem
20. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
adicionando evento do botão
• Adicionando evento para executar o botão
ao pressionar “enter”
21. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
camada view completa
22. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
camada model.domain
• Em model.domain, crie uma classe
chamada Autenticacao, com os atributos
usuario e senha
23. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
camada model.domain
• Botão direito do mouse e clique em insert
code, adicionando construtores, get/set
para todos os campos, toString para todos
os campos e equals HashCode,
comparando pelo campo usuario
24. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
camada model.dao
• Em model.dao, crie uma classe chamada
AutenticacaoDao, simulando o
funcionamento de um banco de dados
25. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
camada control
• Em control, crie uma classe chamada
AutenticacaoControl, e coloque get/set
para o campo autenticacaoDigitada.
26. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
camada control
• Em AutenticacaoView, coloque uma
referência para AutenticacaoControl, e crie
um get
27. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
camada control
• Clique duplo no botão login para
adicionar um evento, e adicione o código
abaixo:
28. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
resultado
• O que falta?
29. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
resultado
• Falta associar o que foi digitado nos
campos com o atributo
autenticacaoDigitada da classe
AutenticacaoControl.
30. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Beans Binding
• Implementação da JSR-295;
• Permite vincular propriedades de objetos
a propriedades de componentes gráficos
no Swing ou qualquer outro
objeto/componente;
• O NetBeans possui total suporte para tal
finalidade.
31. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Beans Binding –
implementação view
• Deve-se amarrar os campos de texto com
os atributos de autenticacaoDigitada
32. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Beans Binding –
implementação view
• Com a vinculação dos componentes,
automaticamente foram adicionados as
bibliotecas do framework
34. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Adicionando menu
35. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Adicionando menu
• Edite os textos dos menus e adicione
atalhos, clicando duplo ao lado do texto;
• Edite as propriedades do Jframe, como
title e location by platform
36. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Criando um link entre a tela
de login e o menu
• Deve-se fechar o frame atual
(Autenticação) e abrir o frame novo
(menu).
37. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Executando o arquivo binário
• Clicar em Clean and Build;
• Dentro do diretório do projeto foi gerado
um diretório chamado dist com os
arquivos binários.
38. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Próxima aula
• Criação de telas CRUD
(inserção,atualização,exclusão e pesquisa)
completo, com tabelas, pesquisas, etc..