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
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.
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.
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
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.
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.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Mapa de Componentes
Swing/AWT
• Swing em azul;
• AWT em
amarelo.
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.
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
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto -
criação
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
criação de pacotes
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Adicionando um JFrame
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Editando propriedades
JFrame
•
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Adicionando um Panel
•
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Editando borda
•
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:
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Adicionando Componentes
• Edite o nome dos componentes abaixo
(apertando F2 em cada componente):
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
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
Adicionando Imagem
• Adicione um Jlabel, e pela propriedade
icon, adicione a imagem
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”
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
camada view completa
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
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
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
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.
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
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:
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Iniciando um projeto –
resultado
• O que falta?
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.
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.
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
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
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Beans Binding – resultado
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Adicionando menu
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
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).
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.
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..
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Referências
• [1] – “Dominando NetBeans”; Edson
Gonçalves; Editora Ciência Moderna,
2006;
• [2] –“Swing + Beans Binding” – revista
Java Magazine, ed. 70;
• [3] – “Criando aplicações com MVC” –
revista Java Magazine, ed. 83.

Mini Curso - Programação de Interfaces Gráficas - aula 1

  • 1.
    Programação de Interfaces Gráficas Aula1 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 EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – carloseduardodantas@iftm.edu.br Mapa de Componentes Swing/AWT • Swing em azul; • AWT em amarelo.
  • 8.
    Prof Carlos EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – carloseduardodantas@iftm.edu.br Iniciando um projeto - criação
  • 11.
    Prof Carlos EduardoDantas – carloseduardodantas@iftm.edu.br Iniciando um projeto – criação de pacotes
  • 12.
    Prof Carlos EduardoDantas – carloseduardodantas@iftm.edu.br Iniciando um projeto – Adicionando um JFrame
  • 13.
    Prof Carlos EduardoDantas – carloseduardodantas@iftm.edu.br Iniciando um projeto – Editando propriedades JFrame •
  • 14.
    Prof Carlos EduardoDantas – carloseduardodantas@iftm.edu.br Iniciando um projeto – Adicionando um Panel •
  • 15.
    Prof Carlos EduardoDantas – carloseduardodantas@iftm.edu.br Iniciando um projeto – Editando borda •
  • 16.
    Prof Carlos EduardoDantas – 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 EduardoDantas – carloseduardodantas@iftm.edu.br Iniciando um projeto – Adicionando Componentes • Edite o nome dos componentes abaixo (apertando F2 em cada componente):
  • 18.
    Prof Carlos EduardoDantas – 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 EduardoDantas – carloseduardodantas@iftm.edu.br Iniciando um projeto – Adicionando Imagem • Adicione um Jlabel, e pela propriedade icon, adicione a imagem
  • 20.
    Prof Carlos EduardoDantas – 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 EduardoDantas – carloseduardodantas@iftm.edu.br Iniciando um projeto – camada view completa
  • 22.
    Prof Carlos EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – carloseduardodantas@iftm.edu.br Iniciando um projeto – camada control • Em AutenticacaoView, coloque uma referência para AutenticacaoControl, e crie um get
  • 27.
    Prof Carlos EduardoDantas – 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 EduardoDantas – carloseduardodantas@iftm.edu.br Iniciando um projeto – resultado • O que falta?
  • 29.
    Prof Carlos EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – carloseduardodantas@iftm.edu.br Beans Binding – implementação view • Deve-se amarrar os campos de texto com os atributos de autenticacaoDigitada
  • 32.
    Prof Carlos EduardoDantas – carloseduardodantas@iftm.edu.br Beans Binding – implementação view • Com a vinculação dos componentes, automaticamente foram adicionados as bibliotecas do framework
  • 33.
    Prof Carlos EduardoDantas – carloseduardodantas@iftm.edu.br Beans Binding – resultado
  • 34.
    Prof Carlos EduardoDantas – carloseduardodantas@iftm.edu.br Adicionando menu
  • 35.
    Prof Carlos EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – 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..
  • 39.
    Prof Carlos EduardoDantas – carloseduardodantas@iftm.edu.br Referências • [1] – “Dominando NetBeans”; Edson Gonçalves; Editora Ciência Moderna, 2006; • [2] –“Swing + Beans Binding” – revista Java Magazine, ed. 70; • [3] – “Criando aplicações com MVC” – revista Java Magazine, ed. 83.