mini curso - programação de interfaces gráficas - aula 1
TRANSCRIPT
![Page 1: Mini Curso - Programação de Interfaces Gráficas - aula 1](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/9.jpg)
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 16: Mini Curso - Programação de Interfaces Gráficas - aula 1](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/20.jpg)
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 22: Mini Curso - Programação de Interfaces Gráficas - aula 1](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/27.jpg)
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 29: Mini Curso - Programação de Interfaces Gráficas - aula 1](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/32.jpg)
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 35: Mini Curso - Programação de Interfaces Gráficas - aula 1](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/35.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/36.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/37.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/38.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062706/5579a0dfd8b42ac1148b47b7/html5/thumbnails/39.jpg)
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.