mini curso - programação de interfaces gráficas - aula 3
TRANSCRIPT
Programação de Interfaces Gráficas
Aula 3
Mini CursoINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TRIÂNGULO MINEIRO – Campus Avançado Uberlândia
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
Objetivos Aula 3Objetivos Aula 3
• Conclusão do CRUD de fornecedor iniciado na aula 2.
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
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 – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor – Tela de Fornecedor – model.daomodel.dao
• Crie uma classe chamada FornecedorDao, adicionando os métodos abaixo
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
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 – [email protected] Carlos Eduardo Dantas – [email protected]
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 – [email protected] Carlos Eduardo Dantas – [email protected]
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 – [email protected] Carlos Eduardo Dantas – [email protected]
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 – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor – Tela de Fornecedor – model.viewmodel.view
• Para a tabela, vincule a propriedade elements com o campo fornecedoresTabela
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
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 – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor – Tela de Fornecedor – model.viewmodel.view
• Vincule a propriedade SelectedElement com o campo fornecedorSelecionado
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
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 – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor – Tela de Fornecedor – model.viewmodel.view
• Ao executar o projeto, os fornecedores serão mostrados na tabela.
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor – Tela de Fornecedor – model.viewmodel.view
• Ao executar o projeto, os fornecedores serão mostrados na tabela.
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• 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 – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• Serão adicionados os dois métodos abaixo em FornecedorDao, para deixar o salvar genérico para insert/update
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• 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 – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• Em FornecedorView, deve-se clicar duplo no botão de salvar, para que o evento seja criado.
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• Ao clicar em salvar, a mensagem é mostrada, contudo o fornecedor não aparece na tabela
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• 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 – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• Com essa atualização, o cliente será mostrado.
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• 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 – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• Contudo, ao salvar o fornecedor, o sistema não limpa os campos, como mostra a figura abaixo:
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• 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 – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• 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 – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• 3) Alterar o método setFornecedorDigitado, para notificar os textFields assim que um novo fornecedor for setado.
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar
• Problema resolvido.
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento excluirevento excluir
• FornecedorDao:
• FornecedorControl:
• Evento do botão excluir em FornecedorView:
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
Tela de Fornecedor –Tela de Fornecedor –evento excluirevento excluir
• Ao digitar o código do fornecedor, e clicar no botão, o sistema exclui.
Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]
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.