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

39
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 [email protected]

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

Page 1: Mini Curso - Programação de Interfaces Gráficas - aula 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 – [email protected]

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

Prof Carlos Eduardo Dantas – [email protected]

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.

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

Prof Carlos Eduardo Dantas – [email protected]

Objetivos Aula 1

• Obter uma visão geral de componentes Swing;

• Organizar um projeto no padrão MVC.

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

Prof Carlos Eduardo Dantas – [email protected]

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

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

Prof Carlos Eduardo Dantas – [email protected]

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.

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

Prof Carlos Eduardo Dantas – [email protected]

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.

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

Prof Carlos Eduardo Dantas – [email protected]

Mapa de Componentes Swing/AWT

• Swing em azul;

• AWT em

amarelo.

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

Prof Carlos Eduardo Dantas – [email protected]

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.

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

Prof Carlos Eduardo Dantas – [email protected]

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

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto -criação

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –criação de pacotes

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –Adicionando um JFrame

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –Editando propriedades

JFrame

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –Adicionando um Panel

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –Editando borda

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

Prof Carlos Eduardo Dantas – [email protected]

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:

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –Adicionando Componentes

• Edite o nome dos componentes abaixo (apertando F2 em cada componente):

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –Adicionando Componentes

• Adicione um novo pacote chamado view.img, e dentro deste, coloque uma imagem para a tela de login

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –Adicionando Imagem

• Adicione um Jlabel, e pela propriedade icon, adicione a imagem

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –adicionando evento do botão

• Adicionando evento para executar o botão ao pressionar “enter”

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –camada view completa

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –camada model.domain

• Em model.domain, crie uma classe chamada Autenticacao, com os atributos usuario e senha

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

Prof Carlos Eduardo Dantas – [email protected]

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

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –camada model.dao

• Em model.dao, crie uma classe chamada AutenticacaoDao, simulando o funcionamento de um banco de dados

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –camada control

• Em control, crie uma classe chamada AutenticacaoControl, e coloque get/set para o campo autenticacaoDigitada.

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –camada control

• Em AutenticacaoView, coloque uma referência para AutenticacaoControl, e crie um get

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –camada control

• Clique duplo no botão login para adicionar um evento, e adicione o código abaixo:

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –resultado

• O que falta?

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

Prof Carlos Eduardo Dantas – [email protected]

Iniciando um projeto –resultado

• Falta associar o que foi digitado nos campos com o atributo autenticacaoDigitada da classe AutenticacaoControl.

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

Prof Carlos Eduardo Dantas – [email protected]

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.

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

Prof Carlos Eduardo Dantas – [email protected]

Beans Binding –implementação view

• Deve-se amarrar os campos de texto com os atributos de autenticacaoDigitada

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

Prof Carlos Eduardo Dantas – [email protected]

Beans Binding –implementação view

• Com a vinculação dos componentes, automaticamente foram adicionados as bibliotecas do framework

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

Prof Carlos Eduardo Dantas – [email protected]

Beans Binding – resultado

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

Prof Carlos Eduardo Dantas – [email protected]

Adicionando menu

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

Prof Carlos Eduardo Dantas – [email protected]

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

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

Prof Carlos Eduardo Dantas – [email protected]

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).

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

Prof Carlos Eduardo Dantas – [email protected]

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.

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

Prof Carlos Eduardo Dantas – [email protected]

Próxima aula

• Criação de telas CRUD (inserção,atualização,exclusão e pesquisa) completo, com tabelas, pesquisas, etc..

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

Prof Carlos Eduardo Dantas – [email protected]

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.