SlideShare uma empresa Scribd logo
1 de 30
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
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.
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().
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
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.
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
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.
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
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
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
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
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...
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.
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.
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
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
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.
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.
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
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.
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.
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:
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:
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.
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
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.
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.
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:
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.
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.

Mais conteúdo relacionado

Destaque

Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
Bianca Dantas
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
Regis Magalhães
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
samuelthiago
 

Destaque (20)

Mini Curso - Programação de Interfaces Gráficas - aula extra persistência
Mini Curso - Programação de Interfaces Gráficas - aula extra persistênciaMini Curso - Programação de Interfaces Gráficas - aula extra persistência
Mini Curso - Programação de Interfaces Gráficas - aula extra persistência
 
Programação Orientada a Objetos - Pós Graduação - Aula 6 - Princípios OO
Programação Orientada a Objetos - Pós Graduação - Aula 6 - Princípios OOProgramação Orientada a Objetos - Pós Graduação - Aula 6 - Princípios OO
Programação Orientada a Objetos - Pós Graduação - Aula 6 - Princípios OO
 
Mini Curso - Programação de Interfaces Gráficas - aula 2
Mini Curso - Programação de Interfaces Gráficas - aula 2Mini Curso - Programação de Interfaces Gráficas - aula 2
Mini Curso - Programação de Interfaces Gráficas - aula 2
 
Programação Orientada a Objetos - Pós Graduação - Aula 4 - refactoring com ho...
Programação Orientada a Objetos - Pós Graduação - Aula 4 - refactoring com ho...Programação Orientada a Objetos - Pós Graduação - Aula 4 - refactoring com ho...
Programação Orientada a Objetos - Pós Graduação - Aula 4 - refactoring com ho...
 
Lista Exercicios C2
Lista Exercicios C2Lista Exercicios C2
Lista Exercicios C2
 
Java 07 Entrada Dados
Java 07 Entrada DadosJava 07 Entrada Dados
Java 07 Entrada Dados
 
Apresentação wxWidgets
Apresentação wxWidgetsApresentação wxWidgets
Apresentação wxWidgets
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreading
 
Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1
 
Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
Algoritmos Genéticos Aplicados ao Problema da Mochila MultidimensionalAlgoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional
 
Java Lista Exercicios 06
Java Lista Exercicios 06Java Lista Exercicios 06
Java Lista Exercicios 06
 
Programação Orientada a Objetos - Pós Graduação - Aula 3
Programação Orientada a Objetos - Pós Graduação - Aula 3Programação Orientada a Objetos - Pós Graduação - Aula 3
Programação Orientada a Objetos - Pós Graduação - Aula 3
 
JTableView - Swing
JTableView - SwingJTableView - Swing
JTableView - Swing
 
Lista Exercicios C
Lista Exercicios CLista Exercicios C
Lista Exercicios C
 
Merci 10 Completo
Merci 10 CompletoMerci 10 Completo
Merci 10 Completo
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
 
Exercicios - Java Swing Listeners
Exercicios - Java Swing ListenersExercicios - Java Swing Listeners
Exercicios - Java Swing Listeners
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
 
Java Lista Exercicios 02
Java Lista Exercicios 02Java Lista Exercicios 02
Java Lista Exercicios 02
 

Semelhante a Mini Curso - Programação de Interfaces Gráficas - aula 3

Semelhante a Mini Curso - Programação de Interfaces Gráficas - aula 3 (6)

Adm serviços a era dos serviços
Adm serviços   a era dos serviçosAdm serviços   a era dos serviços
Adm serviços a era dos serviços
 
Projeto Laboratório de Rede com Software Livre - v2016
Projeto Laboratório de Rede com Software Livre - v2016Projeto Laboratório de Rede com Software Livre - v2016
Projeto Laboratório de Rede com Software Livre - v2016
 
Plano projeto implantação servicedesk
Plano projeto implantação servicedeskPlano projeto implantação servicedesk
Plano projeto implantação servicedesk
 
Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLite
 
Global tecnol s.a – tecnologias ads - backend - web - mobile - devops
Global tecnol s.a – tecnologias   ads - backend - web - mobile - devopsGlobal tecnol s.a – tecnologias   ads - backend - web - mobile - devops
Global tecnol s.a – tecnologias ads - backend - web - mobile - devops
 
Sistema puxado beta
Sistema puxado betaSistema puxado beta
Sistema puxado beta
 

Mais de Carlos Eduardo

Mais de Carlos Eduardo (8)

When and Why Your Code Starts to Smell Bad
When and Why Your Code Starts to Smell BadWhen and Why Your Code Starts to Smell Bad
When and Why Your Code Starts to Smell Bad
 
Experimentos envolvendo ações de Rejuvenescimento de Software
Experimentos envolvendo ações de Rejuvenescimento de SoftwareExperimentos envolvendo ações de Rejuvenescimento de Software
Experimentos envolvendo ações de Rejuvenescimento de Software
 
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...
 
Socket Descriptor Leak encontrado na JDK
Socket Descriptor Leak encontrado na JDKSocket Descriptor Leak encontrado na JDK
Socket Descriptor Leak encontrado na JDK
 
Máquinas de turing com memória limitada
Máquinas de turing com memória limitadaMáquinas de turing com memória limitada
Máquinas de turing com memória limitada
 
Detecting bad smells in source code using change history information
Detecting bad smells in source code using change history informationDetecting bad smells in source code using change history information
Detecting bad smells in source code using change history information
 
Recommending refactoring operations in large software systems
Recommending refactoring operations in large software systemsRecommending refactoring operations in large software systems
Recommending refactoring operations in large software systems
 
NoSql
NoSqlNoSql
NoSql
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

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.