Aula 1 - Carlos Eduardo Dantas

Propaganda
Programação de Interfaces
Gráficas
Aula 1
Carlos Eduardo de Carvalho Dantas
([email protected])
http://carloseduardoxp.wordpress.com
"Use o seu tempo para melhorar a si mesmo através dos escritos de outros homens, assim você ganhará facilmente
o que outros trabalharam duro para conseguir.” Sócrates
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Introdução
Programação de Interfaces Gráficas
Unitri - 27/04/2013
O que a disciplina abrange
Criação de aplicações Desktop na plataforma Java;
Uso e aplicação de boas práticas;
Reutilização e organização de código
Programação de Interfaces Gráficas
Unitri - 27/04/2013
O que a disciplina não abrange
Aplicação de banco de dados (disciplina Persistência
com JDBC e JPA);
Aplicação de relatórios (disciplina Ferramentas
Gráficas e Relatórios)
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Objetivos Aula 1
•
Obter uma visão geral de componentes Swing;
•
Conhecer alguns componentes: JFrame, JButton,
JLabel, JTextField, JPanel, JChekBox, JRadioButton;
•
Entender como cooperar componentes com classes
que recebem os eventos e atuam em regras de
negócio
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Siglas e acrônimos
WYSIWYG→ What You See Is What You Get;
GUI → Graphical User Interface
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Introdução
Uma interface gráfica com o usuário apresenta uma
interface visual para um programa.
Em Java temos basicamente as APIs: Swing, AWT e
SWT
Componentes AWT: Label, Button, TextField, List, etc.
Componentes Swing: JLabel, JButton, JTextField, JList, etc.
Componentes SWT: Label, Button, Text, List, etc
Programação de Interfaces Gráficas
Unitri - 27/04/2013
AWT(Abstract Window Toolkit)
API padrão para criação de componentes GUI no início
da plataforma Java (entre 1995 até 1998);
Os objetos AWT são construídos sobre objetos de
código nativo do Sistema Operacional em uso;
Os componentes GUI originais do pacote java.awt estão
diretamente associados com as capacidades de GUI da
plataforma local.
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Swing
API escrita puramente em Java e é a padrão desde
1998;
JLabel, JButton, JTextField, etc, são componentes GUI
do pacote javax.swing. Os componentes do pacote
Swing são escritos, manipulados e exibidos em Java;
O aspecto e a funcionalidade de um programa Java
(com GUI Swing) são conhecidos como “look and feel”
do programa e podem ser modificados;
Componentes podem Programação
ser estendidos
ou modificados Unitri - 27/04/2013
de Interfaces Gráficas
Swing
Diagrama resumido com componentes AWT (amarelo)
e Swing (azul)
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Swing
Componentes Swing - “pouca dependência da
plataforma local”
Componentes AWT = “dependência da plataforma local”
Alguns componentes do pacote Swing ainda são
componentes com “dependência” (exemplo o JFrame).
java.lang.Object
java.awt.Component
java.awt.Container
java.swing.JComponent
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Frames ou JFrames
Uma janela (ou quadro) de nível mais alto (que não fica
contida dentro de outra janela) é um Frame ou, na
versão Swing, um Jframe;
Os quadros são contêineres. Isso significa que um
quadro pode conter outros componentes de interface
com o usuário.
.
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Frames ou JFrames
.
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.
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Hierarquia componentes
.
O Swing implementa vários “design
patterns” O.O., o que o torna o
toolkit gráfico mais flexível,
extensível e poderoso.
java.lang.Object
java.awt.Componente
java.awt.Container
java.awt.Window
java.swing.JComponente
java.awt.Frame
java.swing.JFrame
java.swing.JPanel
Programação de Interfaces Gráficas
Unitri - 27/04/2013
NetBeans
Ambiente de desenvolvimento open-source escrito em
Java;
Alta produtividade em aplicações desktop e Java ME;
Integração perfeita com os principais frameworks da
Plataforma Java
http://www.netbeans.org
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Primeira aplicação Desktop
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Primeira aplicação Desktop
Criação de Pacotes (packages)
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Primeira aplicação Desktop
Adicionando um Jframe no projeto
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Primeira aplicação Desktop
Editando propriedade title e clicando no preview
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Primeira aplicação Desktop
Adicionando um botão e alterando o nome do
componente
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Primeira aplicação Desktop
Alterando o texto e adicionando um evento para
fechar
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Login
Adicione um Jpanel, renomeie para pnlLogin e faça o
exemplo abaixo na propriedade border
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Login
Crie uma tela de login semelhante à tela abaixo:
Componentes:
JTextField, JPasswordField, JLabel, JButton,
JSeparator, Jpanel (todos os componentes deverão
ficar dentro do JPanel e um JLabel com a imagem)
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Login
Nomenclatura dos componentes:
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Login
Criação de novos pacotes: br.edu.unitri.model.domain
e br.edu.unitri.control;
Criação de novas classes: UsuarioLogin dentro de
model.domain e UsuarioLoginControl dentro de
control
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Login
Insira construtor, getter and setter, equals() and
hashcode() e toString() em UsuarioLogin
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Login
Altere a classe UsuarioLoginView para abstrata e crie
um método abstrato chamado efetuarLogin()
Altere o evento do botão para invocar o método
efetuarLogin()
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Login
A classe UsuarioLoginControl deverá ser filha da
classe UsuarioLoginView. Coloque os atributos
txtUsuario e txtSenha como protected, para acessálos diretamente na classe filha.
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Login
Deverá ser criado um novo pacote chamado
br.edu.unitri.dao e uma nova classe chamada
UsuarioLoginDao.
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Login
UsuárioLoginControl deverá ter uma referência para
UsuarioLoginDao
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Login
UsuárioLoginControl também deverá implementar o
método abstrato efetuarLogin() da classe Pai
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Login
O método main() que o NetBeans gerou
automaticamente na classe UsuarioLoginView deverá
ser movido para a classe UsuarioLoginControl, e na
classe UsuarioLoginView deverão serem mostradas
as mensagens de erro e sucesso
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Login
Resultados:
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Menu
Criar um novo Jframe em br.edu.unitri.view chamado
MenuView e adicione um item JMenuBar. Altere os
nomes e insira mnemônicos (alt + caractere)
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Menu
Altere o nome dos componentes como mostra a figura
abaixo
Clique com o botão direito no
componente mnuCadastro e
adicione um menuItem
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Menu
É possível colocar um atalho para cada item de menu
editando a propriedade accelerator e colocar imagem
com a propriedade icon
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Menu
Na classe UsuarioLoginControl, adicione o código
para chamar o menu
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Criando uma tela de Menu
Adicione dois JInternalFrame no sistema,
CompromissoView e ContatoView e crie eventos
actionPerformed para cada um destes.
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Exercício para agora
Criar na tela de contato campos básicos de cadastro
como nome, endereço, telefone, cidade, estado,
email, etc..
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Exercício para 4/5
Criar um projeto para uso pessoal/profissional
envolvendo menu e telas de login contemplando no
mínimo todos os componentes usados até então.
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Referências bibliográficas
[1] “Dominando NetBeans”; Edson Gonçalves; Editora
Ciência Moderna; 2006;
[2] Artigo “Swing + Beans Binding” – Java Magazine ed. 70;
[3] Artigo “Criando Aplicações com MVC” – Java Magazine
ed. 83
Programação de Interfaces Gráficas
Unitri - 27/04/2013
Download