Você está na página 1de 41

Programao de Interfaces

Grficas

Aula 1
Carlos Eduardo de Carvalho Dantas
(carloseduardoxpto@gmail.com)
http://carloseduardoxp.wordpress.com
"Use o seu tempo para melhorar a si mesmo atravs dos escritos de outros homens, assim voc ganhar facilmente
o que outros trabalharam duro para conseguir. Scrates
Programao de Interfaces Grficas

Unitri - 27/04/2013

Introduo

Programao de Interfaces Grficas

Unitri - 27/04/2013

O que a disciplina abrange

Criao de aplicaes Desktop na plataforma Java;


Uso e aplicao de boas prticas;
Reutilizao e organizao de cdigo

Programao de Interfaces Grficas

Unitri - 27/04/2013

O que a disciplina no abrange

Aplicao de banco de dados (disciplina Persistncia


com JDBC e JPA);
Aplicao de relatrios (disciplina Ferramentas
Grficas e Relatrios)

Programao de Interfaces Grficas

Unitri - 27/04/2013

Objetivos Aula 1

Obter uma viso 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
negcio

Programao de Interfaces Grficas

Unitri - 27/04/2013

Siglas e acrnimos

WYSIWYG What You See Is What You Get;


GUI Graphical User Interface

Programao de Interfaces Grficas

Unitri - 27/04/2013

Introduo

Uma interface grfica com o usurio 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

Programao de Interfaces Grficas

Unitri - 27/04/2013

AWT(Abstract Window Toolkit)

API padro para criao de componentes GUI no incio


da plataforma Java (entre 1995 at 1998);
Os objetos AWT so construdos sobre objetos de
cdigo nativo do Sistema Operacional em uso;
Os componentes GUI originais do pacote java.awt esto
diretamente associados com as capacidades de GUI da
plataforma local.
Programao de Interfaces Grficas

Unitri - 27/04/2013

Swing
API escrita puramente em Java e a padro desde
1998;
JLabel, JButton, JTextField, etc, so componentes GUI
do pacote javax.swing. Os componentes do pacote
Swing so escritos, manipulados e exibidos em Java;
O aspecto e a funcionalidade de um programa Java
(com GUI Swing) so conhecidos como look and feel
do programa e podem ser modificados;
Componentes podem Programao
ser estendidos
ou modificados Unitri - 27/04/2013
de Interfaces Grficas

Swing
Diagrama resumido com componentes AWT (amarelo)
e Swing (azul)

Programao de Interfaces Grficas

Unitri - 27/04/2013

Swing
Componentes Swing - pouca dependncia da
plataforma local
Componentes AWT = dependncia da plataforma local
Alguns componentes do pacote Swing ainda so
componentes com dependncia (exemplo o JFrame).
java.lang.Object
java.awt.Component
java.awt.Container
java.swing.JComponent

Programao de Interfaces Grficas

Unitri - 27/04/2013

Frames ou JFrames
Uma janela (ou quadro) de nvel mais alto (que no fica
contida dentro de outra janela) um Frame ou, na
verso Swing, um Jframe;
Os quadros so contineres. Isso significa que um
quadro pode conter outros componentes de interface
com o usurio.
.

Programao de Interfaces Grficas

Unitri - 27/04/2013

Frames ou JFrames
.
Alguns mtodos 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 ttulo,
setResizeable( ): que especifica um boolean para determinar se o
quadro ser redimensionvel ou no,
setVisible( ): exibir o quadro,
setSize( ): que especifica o tamanho do quadro,
setLocation( ): que especifica a localizao do quadro na tela.

Programao de Interfaces Grficas

Unitri - 27/04/2013

Hierarquia componentes
.
O Swing implementa vrios design
patterns O.O., o que o torna o
toolkit grfico mais flexvel,
extensvel 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

Programao de Interfaces Grficas

Unitri - 27/04/2013

NetBeans
Ambiente de desenvolvimento open-source escrito em
Java;
Alta produtividade em aplicaes desktop e Java ME;
Integrao perfeita com os principais frameworks da
Plataforma Java
http://www.netbeans.org

Programao de Interfaces Grficas

Unitri - 27/04/2013

Primeira aplicao Desktop

Programao de Interfaces Grficas

Unitri - 27/04/2013

Primeira aplicao Desktop


Criao de Pacotes (packages)

Programao de Interfaces Grficas

Unitri - 27/04/2013

Primeira aplicao Desktop


Adicionando um Jframe no projeto

Programao de Interfaces Grficas

Unitri - 27/04/2013

Primeira aplicao Desktop


Editando propriedade title e clicando no preview

Programao de Interfaces Grficas

Unitri - 27/04/2013

Primeira aplicao Desktop


Adicionando um boto e alterando o nome do
componente

Programao de Interfaces Grficas

Unitri - 27/04/2013

Primeira aplicao Desktop


Alterando o texto e adicionando um evento para
fechar

Programao de Interfaces Grficas

Unitri - 27/04/2013

Criando uma tela de Login


Adicione um Jpanel, renomeie para pnlLogin e faa o
exemplo abaixo na propriedade border

Programao de Interfaces Grficas

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 devero
ficar dentro do JPanel e um JLabel com a imagem)

Programao de Interfaces Grficas

Unitri - 27/04/2013

Criando uma tela de Login


Nomenclatura dos componentes:

Programao de Interfaces Grficas

Unitri - 27/04/2013

Criando uma tela de Login


Criao de novos pacotes: br.edu.unitri.model.domain
e br.edu.unitri.control;
Criao de novas classes: UsuarioLogin dentro de
model.domain e UsuarioLoginControl dentro de
control

Programao de Interfaces Grficas

Unitri - 27/04/2013

Criando uma tela de Login


Insira construtor, getter and setter, equals() and
hashcode() e toString() em UsuarioLogin

Programao de Interfaces Grficas

Unitri - 27/04/2013

Criando uma tela de Login


Altere a classe UsuarioLoginView para abstrata e crie
um mtodo abstrato chamado efetuarLogin()

Altere o evento do boto para invocar o mtodo


efetuarLogin()

Programao de Interfaces Grficas

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 acesslos diretamente na classe filha.

Programao de Interfaces Grficas

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.

Programao de Interfaces Grficas

Unitri - 27/04/2013

Criando uma tela de Login


UsurioLoginControl dever ter uma referncia para
UsuarioLoginDao

Programao de Interfaces Grficas

Unitri - 27/04/2013

Criando uma tela de Login


UsurioLoginControl tambm dever implementar o
mtodo abstrato efetuarLogin() da classe Pai

Programao de Interfaces Grficas

Unitri - 27/04/2013

Criando uma tela de Login


O mtodo main() que o NetBeans gerou
automaticamente na classe UsuarioLoginView dever
ser movido para a classe UsuarioLoginControl, e na
classe UsuarioLoginView devero serem mostradas
as mensagens de erro e sucesso

Programao de Interfaces Grficas

Unitri - 27/04/2013

Criando uma tela de Login


Resultados:

Programao de Interfaces Grficas

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 mnemnicos (alt + caractere)

Programao de Interfaces Grficas

Unitri - 27/04/2013

Criando uma tela de Menu


Altere o nome dos componentes como mostra a figura
abaixo

Clique com o boto direito no


componente mnuCadastro e
adicione um menuItem

Programao de Interfaces Grficas

Unitri - 27/04/2013

Criando uma tela de Menu


possvel colocar um atalho para cada item de menu
editando a propriedade accelerator e colocar imagem
com a propriedade icon

Programao de Interfaces Grficas

Unitri - 27/04/2013

Criando uma tela de Menu


Na classe UsuarioLoginControl, adicione o cdigo
para chamar o menu

Programao de Interfaces Grficas

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.

Programao de Interfaces Grficas

Unitri - 27/04/2013

Exerccio para agora


Criar na tela de contato campos bsicos de cadastro
como nome, endereo, telefone, cidade, estado,
email, etc..

Programao de Interfaces Grficas

Unitri - 27/04/2013

Exerccio para 4/5


Criar um projeto para uso pessoal/profissional
envolvendo menu e telas de login contemplando no
mnimo todos os componentes usados at ento.

Programao de Interfaces Grficas

Unitri - 27/04/2013

Referncias bibliogrficas
[1] Dominando NetBeans; Edson Gonalves; Editora
Cincia Moderna; 2006;
[2] Artigo Swing + Beans Binding Java Magazine ed. 70;
[3] Artigo Criando Aplicaes com MVC Java Magazine
ed. 83

Programao de Interfaces Grficas

Unitri - 27/04/2013

Você também pode gostar