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 – [email protected] Prof Carlos Eduardo Dantas – [email protected]

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

Embed Size (px)

Citation preview

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

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]

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

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.

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

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

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

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

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

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.

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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.

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

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.

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

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

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

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

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

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.

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

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.

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

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

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

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.

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

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.

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

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:

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

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:

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

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.

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

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

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

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.

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

Prof Carlos Eduardo Dantas – [email protected] Carlos Eduardo Dantas – [email protected]

Tela de Fornecedor –Tela de Fornecedor –evento salvarevento salvar

• Problema resolvido.

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

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:

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

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.

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

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.