Mini Curso - Programação de Interfaces Gráficas - aula 3
1. Programação de Interfaces
Gráficas
Aula 3
Mini Curso
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TRIÂNGULO MINEIRO – Campus Avançado Uberlândia
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
2. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Objetivos Aula 3Objetivos Aula 3
• Conclusão do CRUD de fornecedor
iniciado na aula 2.
3. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –Tela de Fornecedor –
model.domainmodel.domain
• Adicione a classe Fornecedor, com os
campos e métodos abaixo, adicionando
construtores, get/set, equals/hashcode
comparando por código e toString().
4. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –Tela de Fornecedor –
model.daomodel.dao
• Crie uma classe chamada FornecedorDao,
adicionando os métodos abaixo
5. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –Tela de Fornecedor –
model.controlmodel.control
• Crie uma classe chamada
FornecedorControl, adicionando os
campos abaixo e get/set para todos os
atributos, exceto FornecedorDao.
6. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –Tela de Fornecedor –
model.viewmodel.view
• Em FornecedorView, deve-se adicionar
uma referência ao FornecedorControl,
com um método get
7. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –Tela de Fornecedor –
model.viewmodel.view
• Antes de efetuar o bind dos componentes,
renomeie o nome de todos eles, pois de
agora em diante serão utilizados em
métodos.
8. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –Tela de Fornecedor –
model.viewmodel.view
• Efetue o bind (vincular) dos três campos
de texto com os campos do objeto
FornecedorDigitado dentro da classe
FornecedorControl
9. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –Tela de Fornecedor –
model.viewmodel.view
• Para a tabela, vincule a propriedade
elements com o campo
fornecedoresTabela
10. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –Tela de Fornecedor –
model.viewmodel.view
• Na figura abaixo, os campos a serem
mostrados à direita serão apresentados na
tabela
11. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –Tela de Fornecedor –
model.viewmodel.view
• Vincule a propriedade SelectedElement
com o campo fornecedorSelecionado
12. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –Tela de Fornecedor –
model.viewmodel.view
• Clique com o botão direito na tabela e
clique em Table Contents (conteúdo da
tabela), e ajuste o nome das colunas,
tamanho, edição, etc...
13. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –Tela de Fornecedor –
model.viewmodel.view
• Ao executar o projeto, os fornecedores
serão mostrados na tabela.
14. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –Tela de Fornecedor –
model.viewmodel.view
• Ao executar o projeto, os fornecedores
serão mostrados na tabela.
15. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• Para adicionar um evento como salvar, a
alteração é em “cascata”, ou seja, deve-se
primeiro incluir o método em
FornecedorDao, depois em
FornecedorControl, e por último,
adicionar o evento para o botão em
FornecedorView
16. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• Serão adicionados os dois métodos abaixo
em FornecedorDao, para deixar o salvar
genérico para insert/update
17. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• Em FornecedorControl, deve-se adicionar
o método abaixo, que irá salvar o
fornecedor que foi digitado nos campos, e
posteriormente atualizar a tabela.
18. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• Em FornecedorView, deve-se clicar duplo
no botão de salvar, para que o evento seja
criado.
19. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• Ao clicar em salvar, a mensagem é
mostrada, contudo o fornecedor não
aparece na tabela
20. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• O motivo se deve ao Beans Binding não
estar atualizando a tabela. Para isso, deve-
se incluir um “Observer” na tabela, ou
seja, um listerner que irá ser notificado
toda vez que a tabela for modificada;
• A primeira linha do construtor de
FornecedorControl deverá ser modificada.
21. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• Com essa atualização, o cliente será
mostrado.
22. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• Ao salvar o Fornecedor, também é
desejável limpar os campos. Um passo é
limpar o objeto fornecedorDigitado como
mostra a figura abaixo:
23. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• Contudo, ao salvar o fornecedor, o sistema
não limpa os campos, como mostra a
figura abaixo:
24. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• O problema está ligado ao fato que o
objeto fornecedorDigitado recebe o que foi
digitado nos textFields, contudo o inverso
não ocorre, ou seja, os textFields não estão
recebendo o que está no objeto
fornecedorDigitado.
25. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• Para tal, deve-se alterar o
fornecedorControl, nos pontos:
• 1) Adicionar uma propriedade do Beans
Binding para capturar os eventos;
• 2) Adicionar dois métodos ao final da
classe
26. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• 3) Alterar o método
setFornecedorDigitado, para notificar os
textFields assim que um novo fornecedor
for setado.
27. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
salvarsalvar
• Problema resolvido.
28. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
excluirexcluir
• FornecedorDao:
• FornecedorControl:
• Evento do botão excluir em
FornecedorView:
29. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Tela de Fornecedor –eventoTela de Fornecedor –evento
excluirexcluir
• Ao digitar o código do fornecedor, e clicar
no botão, o sistema exclui.
30. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.brProf Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
ReferênciasReferê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.