aula 1 - carloseduardoxp.files.wordpress.com · uma interface gráfica com o usuário apresenta uma...
TRANSCRIPT
Unitri - 27/04/2013Programação de Interfaces Gráficas
Programação de Interfaces Gráficas
Aula 1
Carlos Eduardo de Carvalho Dantas
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
Unitri - 27/04/2013Programação de Interfaces Gráficas
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
O que a disciplina abrange
Unitri - 27/04/2013Programação de Interfaces Gráficas
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)
O que a disciplina não abrange
Unitri - 27/04/2013Programação de Interfaces Gráficas
• 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
Objetivos Aula 1
Unitri - 27/04/2013Programação de Interfaces Gráficas
WYSIWYG→ What You See Is What You Get;
GUI → Graphical User Interface
Siglas e acrônimos
Unitri - 27/04/2013Programação de Interfaces Gráficas
Uma interface gráfica com o usuário apresenta umainterface visual para um programa.
Em Java temos basicamente as APIs: Swing, AWT eSWT
Introdução
Componentes AWT: Label, Button, TextField, List, etc.
Componentes Swing: JLabel, JButton, JTextField, JList, etc.
Componentes SWT: Label, Button, Text, List, etc
Unitri - 27/04/2013Programação de Interfaces Gráficas
API padrão para criação de componentes GUI no inícioda plataforma Java (entre 1995 até 1998);
Os objetos AWT são construídos sobre objetos decódigo nativo do Sistema Operacional em uso;
Os componentes GUI originais do pacote java.awt estãodiretamente associados com as capacidades de GUI daplataforma local.
AWT(Abstract Window Toolkit)
Unitri - 27/04/2013Programação de Interfaces Gráficas
API escrita puramente em Java e é a padrão desde1998;
JLabel, JButton, JTextField, etc, são componentes GUIdo pacote javax.swing. Os componentes do pacoteSwing 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 ser estendidos ou modificados
Swing
Unitri - 27/04/2013Programação de Interfaces Gráficas
Diagrama resumido com componentes AWT (amarelo)e Swing (azul)
Swing
Unitri - 27/04/2013Programação de Interfaces Gráficas
Componentes Swing - “pouca dependência da plataforma local”
Componentes AWT = “dependência da plataforma local”
Alguns componentes do pacote Swing ainda sãocomponentes com “dependência” (exemplo o JFrame).
Swing
java.lang.Object
java.awt.Component
java.awt.Container
java.swing.JComponent
Unitri - 27/04/2013Programação de Interfaces Gráficas
Uma janela (ou quadro) de nível mais alto (que não ficacontida dentro de outra janela) é um Frame ou, naversão Swing, um Jframe;
Os quadros são contêineres. Isso significa que umquadro pode conter outros componentes de interfacecom o usuário.
.
Frames ou JFrames
Unitri - 27/04/2013Programação de Interfaces Gráficas
.
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 oquadro 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.
Unitri - 27/04/2013Programação de Interfaces Gráficas
.
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.awt.Frame
java.swing.JFrame
java.swing.JComponente
java.swing.JPanel
Unitri - 27/04/2013Programação de Interfaces Gráficas
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
NetBeans
Unitri - 27/04/2013Programação de Interfaces Gráficas
Criação de Pacotes (packages)
Primeira aplicação Desktop
Unitri - 27/04/2013Programação de Interfaces Gráficas
Adicionando um Jframe no projeto
Primeira aplicação Desktop
Unitri - 27/04/2013Programação de Interfaces Gráficas
Editando propriedade title e clicando no preview
Primeira aplicação Desktop
Unitri - 27/04/2013Programação de Interfaces Gráficas
Adicionando um botão e alterando o nome do componente
Primeira aplicação Desktop
Unitri - 27/04/2013Programação de Interfaces Gráficas
Alterando o texto e adicionando um evento para fechar
Primeira aplicação Desktop
Unitri - 27/04/2013Programação de Interfaces Gráficas
Adicione um Jpanel, renomeie para pnlLogin e faça o exemplo abaixo na propriedade border
Criando uma tela de Login
Unitri - 27/04/2013Programação de Interfaces Gráficas
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)
Criando uma tela de Login
Unitri - 27/04/2013Programação de Interfaces Gráficas
Nomenclatura dos componentes:
Criando uma tela de Login
Unitri - 27/04/2013Programação de Interfaces Gráficas
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
Criando uma tela de Login
Unitri - 27/04/2013Programação de Interfaces Gráficas
Insira construtor, getter and setter, equals() and hashcode() e toString() em UsuarioLogin
Criando uma tela de Login
Unitri - 27/04/2013Programação de Interfaces Gráficas
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()
Criando uma tela de Login
Unitri - 27/04/2013Programação de Interfaces Gráficas
A classe UsuarioLoginControl deverá ser filha da classe UsuarioLoginView. Coloque os atributos txtUsuario e txtSenha como protected, para acessá-los diretamente na classe filha.
Criando uma tela de Login
Unitri - 27/04/2013Programação de Interfaces Gráficas
Deverá ser criado um novo pacote chamado br.edu.unitri.dao e uma nova classe chamada UsuarioLoginDao.
Criando uma tela de Login
Unitri - 27/04/2013Programação de Interfaces Gráficas
UsuárioLoginControl deverá ter uma referência para UsuarioLoginDao
Criando uma tela de Login
Unitri - 27/04/2013Programação de Interfaces Gráficas
UsuárioLoginControl também deverá implementar o método abstrato efetuarLogin() da classe Pai
Criando uma tela de Login
Unitri - 27/04/2013Programação de Interfaces Gráficas
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
Criando uma tela de Login
Unitri - 27/04/2013Programação de Interfaces Gráficas
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)
Criando uma tela de Menu
Unitri - 27/04/2013Programação de Interfaces Gráficas
Altere o nome dos componentes como mostra a figura abaixo
Clique com o botão direito no
componente mnuCadastro e
adicione um menuItem
Criando uma tela de Menu
Unitri - 27/04/2013Programação de Interfaces Gráficas
É possível colocar um atalho para cada item de menu editando a propriedade accelerator e colocar imagem com a propriedade icon
Criando uma tela de Menu
Unitri - 27/04/2013Programação de Interfaces Gráficas
Na classe UsuarioLoginControl, adicione o código para chamar o menu
Criando uma tela de Menu
Unitri - 27/04/2013Programação de Interfaces Gráficas
Adicione dois JInternalFrame no sistema, CompromissoView e ContatoView e crie eventos actionPerformed para cada um destes.
Criando uma tela de Menu
Unitri - 27/04/2013Programação de Interfaces Gráficas
Criar na tela de contato campos básicos de cadastro como nome, endereço, telefone, cidade, estado, email, etc..
Exercício para agora
Unitri - 27/04/2013Programação de Interfaces Gráficas
Criar um projeto para uso pessoal/profissional envolvendo menu e telas de login contemplando no mínimo todos os componentes usados até então.
Exercício para 4/5