Your SlideShare is downloading. ×
Confecção de Um Sistema de Vendas em Java com                       Swing                  Professor Hildeberto Melo - 201...
ÍndiceSobre o autor .........................................................................................................
Implementação do Método Remover Venda ......................................................................36       Imple...
Telas do Produto.............................................................................................................
FigurasFigura 1 - Tela principal do NetBeans.................................................................................
Figura 27 - Método remover Cliente ..........................................................................................
Figura 54 - Código fonte tela alterar cliente................................................................................
Sobre o autorO professor Hildeberto Melo atua nas áreas acadêmica, desenvolvimento e consultoriasem sistemas de informação...
IntroduçãoNeste documento veremos o passo a passo para o desenvolvimento de um sistemabásico de gerenciamento de vendas. F...
Tela principal do NetBeans        Ao ser iniciado o NetBeans apresenta sua interface de desenvolvimento,mostrado na Figura...
Criando um novo projeto      Para criarmos uma aplicação Swing, é simples, basta acessar o menu: arquivo->novo projeto, co...
Figura 3 - Criando novo projeto – parte 2        Aparecerá a tela de configuração do Projeto, onde constam as seguintesinf...
Aparecerá na aba de projetos o projeto recém criado, contendo 5 (cinco) pastas:Pacotes de código-fonte, pacote de testes, ...
Definição do cenárioO sistema de vendas a ser desenvolvido possui as seguintes entidades: clientes, produtose as vendas co...
Como podemos observar na Figura acima as classes de repositórios têm os seguintesmétodos:   •   Inserir – utilizado para i...
Codificando as Classes BásicasAs classes básicas são Cliente, Produto, ItemVenda e Venda, estas classesrepresentam o domín...
Figura 9 - Criando uma classe no NetBeans parte 2Codificando a Classe ClientePara adicionarmos a Classe Cliente ao sistema...
Figura 10 - Configurando a classe Cliente parte 1Aparecerá a estrutura básica de uma classe em Java, que terá apenas o qua...
Figura 12 - Configurando a classe Cliente parte 3Para encapsular automaticamente os atributos da classe Cliente, seguiremo...
Aparecerá a tela de configuração dos “gets” e “sets” correspondentes ao referidosatributos da classe. Clicar no botão “Sel...
Para adicionarmos a Classe Produto ao sistema, basta seguir os passos descritos para aclasse Cliente. Vale salientar que d...
Codificando a Classe Item de VendaPara adicionarmos a Classe ItemVenda ao sistema, basta seguir os passos descritospara a ...
Figura 19 - Configurando a classe ItemVenda parte 2Foi necessário codificar um construtor para a classe ItemVenda, no cons...
Figura 20 - Configurando a classe Venda parte 1Além dos atributos número e data, pode-se observar que a classe Venda tem u...
Foi necessário codificar um construtor para a classe Venda, no construtor seráinstanciado automaticamente o atributo itens...
Codificando as Classes de RepositóriosSerão codificadas três classes de repositórios, RepositorioCliente, RepositorioProdu...
•   Listar – utilizado para retornar todos os objetos que foram cadastrados no       dispositivo de armazenamento. Obs.: a...
Figura 24 - Métodos listarTodos, obterIntancia e construtor do RepositórioClienteImplementação do Método verificaExistenci...
Figura 26 - Método inserir ClienteImplementação do Método Remover Cliente                             Figura 27 - Método r...
Figura 28 - Método atualizar ClienteProfessor Hildeberto Melo - 2011
Classe RepositorioProdutoA figura abaixo ilustra a classe RepositorioProduto, podemos observar que foideclarado um atribut...
Figura 30 - Métodos listarTodos, obterInstancia e construtor do RepositórioProdutoImplementação do Método Inserir Produto ...
Figura 32 - Método remover produtoImplementação do Método Atualizar Produto                            Figura 33 - Método ...
Figura 34 - Método verifica existência produtoProfessor Hildeberto Melo - 2011
Classe RepositorioVendaA figura abaixo ilustra a classe RepositorioVenda, podemos observar que foi declaradoum atributo do...
Figura 36 - Construtor e métodos listar todos e obterIntanciaImplementação do Método Inserir Venda                        ...
Figura 38 - Método remover vendaImplementação do Método Atualizar Venda                             Figura 39 - Método atu...
Figura 40 - Método verifica existência vendaProfessor Hildeberto Melo - 2011
Trabalhando com componentes Swing       Vamos colocar um formulário JFrame, para esta tarefa basta clicar com o botãodirei...
Figura 42 - Incluindo um JFrame ao projeto - parte 2       Após a configuração inicial do JFrame, aparecerá um formulário ...
Figura 43 - Incluindo um JFrame ao projeto - parte 3Configurando a Classe Principal do Projeto       Por padrão quando cri...
Figura 44 - Configurando a classe principal - parte 1       Aparecerá a tela de propriedades do projeto, onde poderemos pe...
Figura 45 - Configurando a classe principal - parte 2       Para escolher a Classe principal do projeto iremos escolher a ...
Figura 47 - Configurando a classe principal - parte 4Manipulando Componentes Swing (básico)Antes de começarmos a implement...
Foi colocado no formulário dois JTextField e dois JButtons, onde o clique doprimeiro botão exibirá uma mensagem com o cont...
Figura 50 - Manipulando JComboBox - parte 1       O método getSelectedIndex() retorna o índice (valor inteiro) do item esc...
JComboBox       com    os       itens   carregados   no   clique   do   JButton   Carregardinamincamente.                 ...
Figura 53 - Manipulando JTable - parte 1       A Figura 54 mostra o código-fonte para carregar informações dinamicamente n...
A Figura 55 ilustra a execução do clique do JButton definido anteriormente.Onde na tela da esquerda aparece o JTable com a...
Codificando a Parte Visual do Sistema de VendasNosso sistema terá as seguintes telas:   •   Tela principal, a partir desta...
Para as telas de consultas, cadastro e alteração, configurar a propriedadedefaultCloseOperation de todas as telas para DIS...
Seguindo o padrão da tela de consulta de clientes, a tela de consulta de produtos possuiuma tabela onde serão exibidos os ...
•   Remover – no evento do seu click será removido um produto previamente       cadastrado.                           Figu...
Figura 45 - Tela de Cadastro de ClienteA tela de alteração de cliente possuirá dois campos de texto, que servirão para atu...
Figura 47 - Tela de Cadastro de ProdutoA tela de alteração de produto possuirá três campos de texto, que servirão para atu...
os produtos cadastrados. Teremos também dois botões uma para adicionar um item navenda e o outro para remover um item da v...
Código fonte das telasMétodos auxiliaresCentralizar frameEste método tem por finalidade centralizar a tela no desktop     ...
Telas do ClienteConsulta de ClientesA figura abaixo apresenta o código fonte do clique dos quatro botões, no caso dosbotõe...
Figura 53 - Código fonte tela novo clienteAlteração de ClientePara realizarmos a alteração de um cliente é necessário rece...
Figura 55 - Código fonte tela consulta de produtosCadastro de produtosCódigo dos botões Cancelar e Salvar                 ...
Figura 57 - Código fonte tela alterar produtoPodemos observar que no construtor do formulário recebemos o produto passado ...
Telas do VendaConsulta de vendasA figura abaixo apresenta o código fonte do clique dos três botões, no caso dos botõesde n...
Figura 60 - Código fonte tela cadastro de vendas 1O método carregarCombos() servirá para listar os produtos e clientes cad...
Figura 63 - Código fonte tela cadastro de vendas 4Trabalhando com Banco de DadosAnteriormente vimos como armazenar as info...
Estrutura do Banco De DadosAntes de começar a configurar uma conexão, será necessário criar o banco de dadospara armazenar...
Configurando uma ConexãoVeremos como criar a conexão com o banco de dados.   •   Windows 7:           o Vá na pasta c:wind...
Figura 65 - Configurando a conexão com o banco de dados - 2   Informar o nome da fonte de dados, ex: dbSistemaVendas.     ...
Figura 67 - Configurando a conexão com o banco de dados - 4   Depois de configurado, basta ir clicando nos botões “OK” par...
Figura 68 - Classe de Conexão com o banco de dadosClasse de RepositórioA classe de repositório com os comandos para manipu...
Estrutura da Classe RepositorioClienteOdbcA figura abaixo ilustra a classe repositorioClienteOdbc, nela estão os métodos r...
Método removerA figura abaixo ilustra a implementação do método remover, este método tem porfinalidade excluir um determin...
Método inserirA figura abaixo ilustra a implementação do método inserir, este método tem porfinalidade cadastrar um novo c...
Método atualizarA figura abaixo ilustra a implementação do método atualizar, este método tem porfinalidade cadastrar um no...
Método listar todosA figura abaixo ilustra a implementação do método listarTodos, este método tem porfinalidade retornar t...
Modificando as Telas para Trabalhar Com Banco de DadosAs mudanças são poucas e muito simples de fazer, basta chamar o méto...
Upcoming SlideShare
Loading in...5
×

Tutorial sistema vendas_em_java_com_swing

1,028

Published on

Apostilha de Sistema de vendas em JAVA!

Published in: Education
1 Comment
1 Like
Statistics
Notes
  • Lá na parte de colocar os códigos da erro em qualquer coisa que se refira a lista, não tem o passo a passo de como relacionar a jtable com a lista e com a Form. No cadastro de venda tem 2 métodos carregarCombos e listarTodos. Se puder ajudar manda um email para ds.shiramm@hotmail.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
1,028
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
128
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Tutorial sistema vendas_em_java_com_swing"

  1. 1. Confecção de Um Sistema de Vendas em Java com Swing Professor Hildeberto Melo - 2011Professor Hildeberto Melo - 2011
  2. 2. ÍndiceSobre o autor .................................................................................................................................8Introdução .....................................................................................................................................9Configurações ................................................................................................................................9Tela principal do NetBeans..........................................................................................................10Criando um novo projeto ............................................................................................................11Definição do cenário....................................................................................................................14Codificando as Classes Básicas ....................................................................................................16 Codificando a Classe Cliente....................................................................................................17 Codificando a Classe Produto ..................................................................................................20 Codificando a Classe Item de Venda .......................................................................................22 Codificando a Classe Venda.....................................................................................................23 Classe RepositorioCliente ........................................................................................................27 Implementação do Construtor, métodos obterIntancia e listarTodos................................27 Implementação do Método verificaExistencia ....................................................................28 Implementação do Método Inserir Cliente .........................................................................28 Implementação do Método Remover Cliente .....................................................................29 Implementação do Método Atualizar Cliente .....................................................................29 Classe RepositorioProduto ......................................................................................................31 Implementação do Construtor e dos Métodos Listar Todos e obterInstancia....................31 Implementação do Método Inserir Produto .......................................................................32 Implementação do Método Remover Produto ...................................................................32 Implementação do Método Atualizar Produto ...................................................................33 Implementação do Método Verifica Existência...................................................................33 Classe RepositorioVenda .........................................................................................................35 Implementação do Construtor e dos Métodos listarTodos e obterIntancia.......................35 Implementação do Método Inserir Venda ..........................................................................36Professor Hildeberto Melo - 2011
  3. 3. Implementação do Método Remover Venda ......................................................................36 Implementação do Método Atualizar Venda ......................................................................37 Implementação Método verificaExistência .........................................................................37Trabalhando com componentes Swing .......................................................................................39Configurando a Classe Principal do Projeto.................................................................................41Manipulando Componentes Swing (básico)................................................................................44 JTextField .................................................................................................................................44 JComboBox ..............................................................................................................................45 JTable .......................................................................................................................................47Codificando a Parte Visual do Sistema de Vendas ......................................................................50 Tela Principal do Sistema.........................................................................................................50 Telas de Consultas ...................................................................................................................51 Tela de Consulta de Clientes................................................................................................51 Tela de Consulta de Produtos..............................................................................................51 Tela de Consulta de Vendas.................................................................................................52 Telas de Cadastro e Alteração .................................................................................................53 Tela de Cadastro e Alteração de Cliente..............................................................................53 Tela de Cadastro e Alteração de Produto............................................................................54 Tela de Cadastro de Venda..................................................................................................55Código fonte das telas .................................................................................................................57 Métodos auxiliares ..................................................................................................................57 Centralizar frame .................................................................................................................57 Tela principal ...........................................................................................................................57 Telas do Cliente .......................................................................................................................58 Consulta de Clientes ............................................................................................................58 Cadastro de Clientes............................................................................................................58 Alteração de Cliente ............................................................................................................59Professor Hildeberto Melo - 2011
  4. 4. Telas do Produto......................................................................................................................59 Consulta de produtos ..........................................................................................................59 Cadastro de produtos ..........................................................................................................60 Alteração de produto...........................................................................................................60 Telas do Venda ........................................................................................................................62 Consulta de vendas..............................................................................................................62 Cadastro de Venda...............................................................................................................62Trabalhando com Banco de Dados..............................................................................................64 Estrutura do Banco De Dados..................................................................................................65 Configurando uma Conexão ....................................................................................................66 Criando as Classes para Trabalhar com a Conexão Criada ......................................................68 Classe de Conexão ...............................................................................................................68 Classe de Repositório...............................................................................................................69 Estrutura da Classe RepositorioClienteOdbc.......................................................................70 Método remover .................................................................................................................71 Método inserir .....................................................................................................................72 Método atualizar .................................................................................................................73 Método listar todos .............................................................................................................74 Modificando as Telas para Trabalhar Com Banco de Dados ...................................................75 Considerações Finais............................................................................................................75Professor Hildeberto Melo - 2011
  5. 5. FigurasFigura 1 - Tela principal do NetBeans..........................................................................................10Figura 2 - Criando novo projeto – parte 1 ...................................................................................11Figura 3 - Criando novo projeto – parte 2 ...................................................................................12Figura 4 - Criando novo projeto – parte 3 ...................................................................................12Figura 5 - Estrutura de pastas do projeto....................................................................................13Figura 6 - Diagrama de Classes de Domínio.................................................................................14Figura 7 - Diagrama com as classes referentes à manipulação dos dados do sistema ...............14Figura 8 - Criando uma classe no NetBeans parte 1....................................................................16Figura 9 - Criando uma classe no NetBeans parte 2....................................................................17Figura 10 - Configurando a classe Cliente parte 1 .......................................................................18Figura 11 - Configurando a classe Cliente parte 2 .......................................................................18Figura 12 - Configurando a classe Cliente parte 3 .......................................................................19Figura 13 - Configurando a classe Cliente parte 4 .......................................................................19Figura 14 - Configurando a classe Cliente parte 5 .......................................................................20Figura 15 - Configurando a classe Cliente parte 6 .......................................................................20Figura 16 - Configurando a classe Produto parte 1 .....................................................................21Figura 17 - Configurando a classe Produto parte 2 .....................................................................21Figura 18 - Configurando a classe ItemVenda parte 1.................................................................22Figura 19 - Configurando a classe ItemVenda parte 2.................................................................23Figura 20 - Configurando a classe Venda parte 1 ........................................................................24Figura 21 - Configurando a classe Venda parte 2 ........................................................................24Figura 22 - Método para calcular o total da venda .....................................................................25Figura 23 – Classe RepositorioCliente .........................................................................................27Figura 24 - Métodos listarTodos, obterIntancia e construtor do RepositórioCliente .................28Figura 25 - Método verificaExistencia Cliente .............................................................................28Figura 26 - Método inserir Cliente...............................................................................................29Professor Hildeberto Melo - 2011
  6. 6. Figura 27 - Método remover Cliente ...........................................................................................29Figura 28 - Método atualizar Cliente ...........................................................................................30Figura 29 - Estrutura da classe RepositórioProduto ....................................................................31Figura 30 - Métodos listarTodos, obterInstancia e construtor do RepositórioProduto..............32Figura 31 - Método inserir produto.............................................................................................32Figura 32 - Método remover produto .........................................................................................33Figura 33 - Método atualizar produto .........................................................................................33Figura 34 - Método verifica existência produto ..........................................................................34Figura 35 - Estrutura da classe RepositórioVenda.......................................................................35Figura 36 - Construtor e métodos listar todos e obterIntancia...................................................36Figura 37 - Método inserir venda ................................................................................................36Figura 38 - Método remover venda.............................................................................................37Figura 39 - Método atualizar venda ............................................................................................37Figura 40 - Método verifica existência venda..............................................................................38Figura 41 - Tela principal do Sistema de Vendas .........................................................................50Figura 42 - Tela de Consulta de Clientes......................................................................................51Figura 43 - Tela de Consulta de Produtos....................................................................................52Figura 44 - Tela de Consulta de Vendas.......................................................................................53Figura 45 - Tela de Cadastro de Cliente.......................................................................................54Figura 46 - Tela de Alteração de Cliente......................................................................................54Figura 47 - Tela de Cadastro de Produto .....................................................................................55Figura 48 - Tela de Alteração de Produto....................................................................................55Figura 49 - Tela de Cadastro de Venda........................................................................................56Figura 50 - Método centralizar frame..........................................................................................57Figura 51 - Código Fonte tela principal........................................................................................57Figura 52 - Código fonte tela consulta de clientes ......................................................................58Figura 53 - Código fonte tela novo cliente ..................................................................................59Professor Hildeberto Melo - 2011
  7. 7. Figura 54 - Código fonte tela alterar cliente................................................................................59Figura 55 - Código fonte tela consulta de produtos ....................................................................60Figura 56 - Código fonte tela novo produto ................................................................................60Figura 57 - Código fonte tela alterar produto .............................................................................61Figura 58 - Código fonte tela consulta de vendas 1....................................................................62Figura 59 - Código fonte tela consulta de vendas 2 ....................................................................62Figura 60 - Código fonte tela cadastro de vendas 1 ....................................................................63Figura 61 - Código fonte tela cadastro de vendas 2 ....................................................................63Figura 62 - Código fonte tela cadastro de vendas 3 ....................................................................63Figura 63 - Código fonte tela cadastro de vendas 4 ....................................................................64Figura 64 - Configurando a conexão com o banco de dados - 1..................................................66Figura 65 - Configurando a conexão com o banco de dados - 2.................................................67Figura 66 - Configurando a conexão com o banco de dados - 3..................................................67Figura 67 - Configurando a conexão com o banco de dados - 4..................................................68Figura 68 - Classe de Conexão com o banco de dados................................................................69Figura 69 - Estrutura da classe RepositorioClienteOdbc .............................................................70Figura 70 - Método remover do RepositorioClienteOdbc...........................................................71Figura 71 - Método inserir do RepositorioClienteOdbc ..............................................................72Figura 72 - Método atualizar do RepositorioClienteOdbc...........................................................73Figura 73 - Método listarTodos do RepositorioClienteOdbc.......................................................74Figura 74 - Mudança na GUI para utilizar banco de dados..........................................................75Professor Hildeberto Melo - 2011
  8. 8. Sobre o autorO professor Hildeberto Melo atua nas áreas acadêmica, desenvolvimento e consultoriasem sistemas de informação, desenvolvimento e consultorias em banco de dados.Formação acadêmica: • Técnico em Desenvolvimento de Sistemas – Ibratec Instituto Brasileiro de Tecnologia; • Bacharel em Sistemas de Informação – FIR Faculdade Integrada do Recife; • Especialista em Docência no Ensino Superior – FMN Faculdade Maurício de Nassau; • Mestre em Ciência da Computação – UFPE Universidade Federal de Pernambuco.Disciplinas Ministradas: • Banco de Dados, • Projeto de Banco de Dados, • Desenvolvimento WEB, • Estrutura de Dados, • Programação Orientada a Objetos, • Desenvolvimento de Aplicações Desktop, • Programação Cliente Servidor, • Sistemas Distribuídos, • Sistemas Operacionais, • Análise de Projetos de Sistemas Orientado a Objetos, • Linguagens: Java, C#, C, Pascal, Delphi, PHP, ASP. • Lógica Matemática • Lógica de Programação • Informática Básica • Tecnologia da Informação e SociedadeProfessor Hildeberto Melo - 2011
  9. 9. IntroduçãoNeste documento veremos o passo a passo para o desenvolvimento de um sistemabásico de gerenciamento de vendas. Foram aplicadas apenas as validações necessáriaspara confeccionar este sistema.ConfiguraçõesPara a confecção deste aplicativo utilizaremos a IDE NetBeans. Vamos começar com a instalação do JDK (Java Development Kit), é necessárioter instalado o JDK no computador para podermos começar a trabalhar comdesenvolvimento em Java. • Baixar o JDK • Instalar o JDK no computador Baixar o NetBeans do site www.netbeans.org. Após baixar o NetBeans, efetuesua instalação.Professor Hildeberto Melo - 2011
  10. 10. Tela principal do NetBeans Ao ser iniciado o NetBeans apresenta sua interface de desenvolvimento,mostrado na Figura 1. Na parte superior é apresentada à barra de menus. No cantoesquerdo temos a guia dos projetos e seus respectivos arquivos (Project Explore). Naparte central serão mostrados os arquivo em utilização pelo programador. Na parteinferior, informações sobre servidores, propriedades, console, etc. Na parte esquerda aspropriedades dos arquivos do projeto. Conforme mostra Figura 1. Figura 1 - Tela principal do NetBeansProfessor Hildeberto Melo - 2011
  11. 11. Criando um novo projeto Para criarmos uma aplicação Swing, é simples, basta acessar o menu: arquivo->novo projeto, conforme mostra a Figura 2. Figura 2 - Criando novo projeto – parte 1 Aparecerá à tela de Escolha do tipo de projeto, iremos escolher a categoriaJava e o projeto Aplicativo Java. Após selecionar as opções ditas anteriormente cliqueno botão Próximo. Conforme mostra a Figura 3.Professor Hildeberto Melo - 2011
  12. 12. Figura 3 - Criando novo projeto – parte 2 Aparecerá a tela de configuração do Projeto, onde constam as seguintesinformações do Nome do projeto e Localização do projeto. Após colocar as informaçõessolicitadas clicar no botão Finalizar. Conforme mostra Figura 4. Figura 4 - Criando novo projeto – parte 3Professor Hildeberto Melo - 2011
  13. 13. Aparecerá na aba de projetos o projeto recém criado, contendo 5 (cinco) pastas:Pacotes de código-fonte, pacote de testes, Load Generator Scripts, Bibliotecas eBibliotecas de testes. Na pasta de Pacote de código-fonte serão colocados os arquivos. Java que farãoparte do projeto, dentro desta pasta foi criado automaticamente um pacote com o nomecorrespondente ao nome do projeto. Conforme mostra Figura 5 Figura 5 - Estrutura de pastas do projetoProfessor Hildeberto Melo - 2011
  14. 14. Definição do cenárioO sistema de vendas a ser desenvolvido possui as seguintes entidades: clientes, produtose as vendas com seus respectivos itens. Tomaremos por base o diagrama abaixo, no qualrepresentará o nosso sistema. Figura 6 - Diagrama de Classes de DomínioPara manipularmos as informações do sistema de vendas é necessário incluirmosalgumas entidades ao diagrama inicial. Estas entidades têm como objetivo principalimplementar as rotinas necessárias para a manipulação das informações do sistema. Figura 7 - Diagrama com as classes referentes à manipulação dos dados do sistemaProfessor Hildeberto Melo - 2011
  15. 15. Como podemos observar na Figura acima as classes de repositórios têm os seguintesmétodos: • Inserir – utilizado para inserir um determinado objeto no dispositivo de armazenamento. • remover – utilizado para remover um determinado objeto, no qual este objeto deve estar previamente cadastrado no dispositivo de armazenamento. • atualizar – utilizado para atualizar os valores contidos em um objeto previamente cadastrado no dispositivo de armazenamento. • verifica existência – utilizado para verificar se as informações de um determinado objeto estão presentes no conjunto de objetos cadastrados no dispositivo de armazenamento. Este método será utilizado para: o Na inclusão: evitar o cadastro de dois objetos com as mesmas informações; o Na exclusão: Verificar se um determinado objeto está devidamente cadastrado, para posteriormente removê-lo. o Na alteração: Verificar se um determinado objeto está devidamente cadastrado, para posteriormente alterá-lo. • Listar – utilizado para retornar todos os objetos que foram cadastrados no dispositivo de armazenamento. Obs.: as informações contidas em cada objeto deverão ser exibidas conforme o desenvolvedor da aplicação preferir, ex: apresentar as informações em um JComboBox, em uma jTable, etc.Professor Hildeberto Melo - 2011
  16. 16. Codificando as Classes BásicasAs classes básicas são Cliente, Produto, ItemVenda e Venda, estas classesrepresentam o domínio da aplicação. Cada classe deverá ser um arquivo “. Java” ondecada arquivo deverá possuir todos os atributos e métodos correspondentes.Para adicionar uma nova Classe ao projeto, deveremos seguir os seguintes passos: clicarcom botão direito do mouse no pacote chamado “projetovendasjavaswing”, emseguida escolher a opção “novo” e depois a opção “Class Java”. Figura 8 - Criando uma classe no NetBeans parte 1Em seguida aparecerá à tela para configuração da Classe, neste caso informaremos onome da Classe no qual codificaremos. Esta seqüência de passos deverá ser seguidapara todas as classes que farão parte do sistema.Professor Hildeberto Melo - 2011
  17. 17. Figura 9 - Criando uma classe no NetBeans parte 2Codificando a Classe ClientePara adicionarmos a Classe Cliente ao sistema, é necessário seguir os passos descritosacima, aparecerá uma tela de configuração inicial da Classe, nesta tela basta informar onome da Classe, que neste caso, deverá se chamar “Cliente”, e clicar no botão“Finalizar”.Professor Hildeberto Melo - 2011
  18. 18. Figura 10 - Configurando a classe Cliente parte 1Aparecerá a estrutura básica de uma classe em Java, que terá apenas o qualificador deacesso “public”, a palavra reservada “class” que define o tipo de arquivo e nome daclasse “Cliente”. Figura 11 - Configurando a classe Cliente parte 2Codificaremos os atributos da classe Cliente, estes atributos foram definidos nodiagrama de classe, neste caso os atributos nome e cpf, ambos do tipo String.Professor Hildeberto Melo - 2011
  19. 19. Figura 12 - Configurando a classe Cliente parte 3Para encapsular automaticamente os atributos da classe Cliente, seguiremos os seguintespassos: Clicar com o botão direito do mouse em cima de qualquer atributo, depoisescolher a opção “refatorar”, em seguida “encapsular campos”, conforme ilustrafigura abaixo. Figura 13 - Configurando a classe Cliente parte 4Professor Hildeberto Melo - 2011
  20. 20. Aparecerá a tela de configuração dos “gets” e “sets” correspondentes ao referidosatributos da classe. Clicar no botão “Selecionar tudo”, em seguida clicar no botão“Refatorar” Figura 14 - Configurando a classe Cliente parte 5Seguindo as etapas citadas acima, foi gerado automaticamente os “gets” e “sets”conforme ilustra a figura abaixo. Figura 15 - Configurando a classe Cliente parte 6Codificando a Classe ProdutoProfessor Hildeberto Melo - 2011
  21. 21. Para adicionarmos a Classe Produto ao sistema, basta seguir os passos descritos para aclasse Cliente. Vale salientar que deveremos efetuar as configurações referentes aoProduto. Figura 16 - Configurando a classe Produto parte 1Depois de codificar os atributos referentes ao Produto e gerar os “gets” e “sets”, a classeProduto ficará assim. Figura 17 - Configurando a classe Produto parte 2Professor Hildeberto Melo - 2011
  22. 22. Codificando a Classe Item de VendaPara adicionarmos a Classe ItemVenda ao sistema, basta seguir os passos descritospara a classe Cliente. Vale salientar que deveremos efetuar as configurações referentesao ItemVenda. Figura 18 - Configurando a classe ItemVenda parte 1Além dos atributos quantidade e preço, pode-se observar que a classe ItemVenda temum relacionamento de agregação com a classe Produto. No diagrama de classes arelação está definida da seguinte forma: Um item de venda possui um Produto. Nestecaso o ItemVenda terá um atributo do tipo Produto.Professor Hildeberto Melo - 2011
  23. 23. Figura 19 - Configurando a classe ItemVenda parte 2Foi necessário codificar um construtor para a classe ItemVenda, no construtor seráinstanciado automaticamente o atributo Produto, isto se faz necessário para evitarpossíveis erros no manuseio do ItemVenda.Codificando a Classe VendaPara adicionarmos a Classe Venda ao sistema, basta seguir os passos descritos para aclasse Cliente. Vale salientar que deveremos efetuar as configurações referentes àVenda.Professor Hildeberto Melo - 2011
  24. 24. Figura 20 - Configurando a classe Venda parte 1Além dos atributos número e data, pode-se observar que a classe Venda tem umrelacionamento de agregação com a classe ItemVenda e a classe Cliente. No diagramade classes a relação está definida da seguinte forma: Uma Venda possui um conjunto deItemVenda. Neste caso a Venda terá um atributo do ArrayList<ItemVenda>. E para orelacionamento de agregação com o Cliente a Venda terá um atributo do tipo Cliente,seguindo a mesma situação do relacionamento entre o ItemVenda e Produto. Figura 21 - Configurando a classe Venda parte 2Professor Hildeberto Melo - 2011
  25. 25. Foi necessário codificar um construtor para a classe Venda, no construtor seráinstanciado automaticamente o atributo itensDaVenda (do tipo ArrayList<ItemVenda>)e atributo cliente, isto se faz necessário para evitar possíveis erros no manuseio daVenda.A classe Venda possui um método responsável por calcular o total geral da Venda. Alógica utilizada foi percorrer todos os itens pertencentes à Venda e acumular o cálculoda (quantidade * preço) de cada item.Figura 22 - Método para calcular o total da vendaProfessor Hildeberto Melo - 2011
  26. 26. Codificando as Classes de RepositóriosSerão codificadas três classes de repositórios, RepositorioCliente, RepositorioProduto eRepositorioVenda. Cada classe corresponderá aos clientes, produtos e vendas com seusrespectivos itens.Utilizaremos três ArrayList para armazenar as informações referentes aos clientes,produtos e venda. Em cada método será implementada as validações básicas referentes acada rotina.Antes de iniciar a codificação destas classes, vamos revisar algumas coisas sobre oArrayList. O ArrayList pertence ao pacote java.util.ArrayList e consiste numa classecapaz de armazenar uma coleção de objetos. A manipulação dos objetos contidos nomesmo é dinâmica e pode ser uma lista de quaisquer objetos, ou uma lista de objetosespecíficos. Alguns métodos: • Add(Object): adiciona um objeto ao ArrayList • Clear(): remove todos os objetos do ArrayList • Get(int): retorna o objeto do index informado • isEmpty(): retorna se o ArrayList está vazio • Remove(int): remove o objeto do index informado • Size(): retorna a quantidade de objetos contidos no ArrayListRelembrando os Métodos a serem implementados em cada repositório: • Inserir – utilizado para inserir um determinado objeto no dispositivo de armazenamento. • remover – utilizado para remover um determinado objeto, no qual este objeto deve estar previamente cadastrado no dispositivo de armazenamento. • atualizar – utilizado para atualizar os valores contidos em um objeto previamente cadastrado no dispositivo de armazenamento. • verifica existência – utilizado para verificar se as informações de um determinado objeto estão presentes no conjunto de objetos cadastrados no dispositivo de armazenamento. Este método será utilizado para: o Na inclusão: evitar o cadastro de dois objetos com as mesmas informações; o Na exclusão: Verificar se um determinado objeto está devidamente cadastrado, para posteriormente removê-lo. o Na alteração: Verificar se um determinado objeto está devidamente cadastrado, para posteriormente alterá-lo.Professor Hildeberto Melo - 2011
  27. 27. • Listar – utilizado para retornar todos os objetos que foram cadastrados no dispositivo de armazenamento. Obs.: as informações contidas em cada objeto deverão ser exibidas conforme o desenvolvedor da aplicação preferir, ex: apresentar as informações em um JComboBox, em uma jTable, etc.Classe RepositorioClienteA figura abaixo ilustra a classe RepositorioClliente, podemos observar que foideclarado um atributo do tipo ArrayList<Cliente>, este atributo tem por finalidadearmazenar todos os clientes cadastrado pelo sistema. Também foi declarado um atributodo tipo RepositorioCliente, este atributo tem por finalidade implementar este repositóriocom o padrão singleton.Também podemos observar a assinatura dos métodos definidos no diagrama de classes. Figura 23 – Classe RepositorioClienteImplementação do Construtor, métodos obterIntancia e listarTodosProfessor Hildeberto Melo - 2011
  28. 28. Figura 24 - Métodos listarTodos, obterIntancia e construtor do RepositórioClienteImplementação do Método verificaExistenciaEste método tem como objetivo pesquisar um objeto pelo seu CPF e retornar o índicedeste objeto, caso não seja encontrado nenhum objeto no qual corresponda ao critério depesquisa, o método retornará -1. Figura 25 - Método verificaExistencia ClienteImplementação do Método Inserir ClienteProfessor Hildeberto Melo - 2011
  29. 29. Figura 26 - Método inserir ClienteImplementação do Método Remover Cliente Figura 27 - Método remover ClienteImplementação do Método Atualizar ClienteProfessor Hildeberto Melo - 2011
  30. 30. Figura 28 - Método atualizar ClienteProfessor Hildeberto Melo - 2011
  31. 31. Classe RepositorioProdutoA figura abaixo ilustra a classe RepositorioProduto, podemos observar que foideclarado um atributo do tipo ArrayList<Produto>, este atributo tem por finalidadearmazenar todos os produtos cadastrado pelo sistema. Também foi declarado umatributo do tipo RepositorioProduto, este atributo tem por finalidade implementar esterepositório com o padrão singleton.Também podemos observar a assinatura dos métodos definidos no diagrama de classes. Figura 29 - Estrutura da classe RepositórioProdutoImplementação do Construtor e dos Métodos Listar Todos e obterInstanciaProfessor Hildeberto Melo - 2011
  32. 32. Figura 30 - Métodos listarTodos, obterInstancia e construtor do RepositórioProdutoImplementação do Método Inserir Produto Figura 31 - Método inserir produtoImplementação do Método Remover ProdutoProfessor Hildeberto Melo - 2011
  33. 33. Figura 32 - Método remover produtoImplementação do Método Atualizar Produto Figura 33 - Método atualizar produtoImplementação do Método Verifica ExistênciaEste método tem como objetivo pesquisar um objeto pelo seu código de barras eretornar o índice deste objeto, caso não seja encontrado nenhum objeto no qualcorresponda ao critério de pesquisa, o método retornará -1.Professor Hildeberto Melo - 2011
  34. 34. Figura 34 - Método verifica existência produtoProfessor Hildeberto Melo - 2011
  35. 35. Classe RepositorioVendaA figura abaixo ilustra a classe RepositorioVenda, podemos observar que foi declaradoum atributo do tipo ArrayList<Venda>, este atributo tem por finalidade armazenar todosos produtos cadastrado pelo sistema. Também foi declarado um atributo do tipoRepositorioVenda, este atributo tem por finalidade implementar este repositório com opadrão singleton.Também podemos observar a assinatura dos métodos definidos no diagrama de classes. Figura 35 - Estrutura da classe RepositórioVendaImplementação do Construtor e dos Métodos listarTodos e obterIntanciaProfessor Hildeberto Melo - 2011
  36. 36. Figura 36 - Construtor e métodos listar todos e obterIntanciaImplementação do Método Inserir Venda Figura 37 - Método inserir vendaImplementação do Método Remover VendaProfessor Hildeberto Melo - 2011
  37. 37. Figura 38 - Método remover vendaImplementação do Método Atualizar Venda Figura 39 - Método atualizar vendaImplementação Método verificaExistênciaEste método tem como objetivo pesquisar um objeto pelo seu número e retornar oíndice deste objeto, caso não seja encontrado nenhum objeto no qual corresponda aocritério de pesquisa, o método retornará -1.Professor Hildeberto Melo - 2011
  38. 38. Figura 40 - Método verifica existência vendaProfessor Hildeberto Melo - 2011
  39. 39. Trabalhando com componentes Swing Vamos colocar um formulário JFrame, para esta tarefa basta clicar com o botãodireito do mouse em cima do pacote meuprimeiroprojeto e escolher as opções novo->Formulário JFrame. Conforme mostra Figura 41. Figura 41 - Incluindo um JFrame ao projeto - parte 1 Aparecerá uma tela para configuração do JFrame, com as informações do nomeda classe, localização e pacote. Figura 42.Professor Hildeberto Melo - 2011
  40. 40. Figura 42 - Incluindo um JFrame ao projeto - parte 2 Após a configuração inicial do JFrame, aparecerá um formulário (meio da tela)e a paleta de componentes (lado direito superior da tela), a paleta de componentescontem os principais componentes Swing, para colocar no formulário basta clicar nocomponente e arrastar para o formulário. Figura 43.Professor Hildeberto Melo - 2011
  41. 41. Figura 43 - Incluindo um JFrame ao projeto - parte 3Configurando a Classe Principal do Projeto Por padrão quando criamos um projeto aplicação Java no NetBeans, ele criauma Classe Main.java automaticamente e a coloca como classe principal do sistema. No projeto que foi criado MeuPrimeiroProjeto, existem duas classes aMain.java e FormMain.java. Para configurar a Classe principal do projeto énecessário ir ao menu Arquivo->Projeto Properties. Figura 44.Professor Hildeberto Melo - 2011
  42. 42. Figura 44 - Configurando a classe principal - parte 1 Aparecerá a tela de propriedades do projeto, onde poderemos personalizar nossaaplicação. Figura 45.Professor Hildeberto Melo - 2011
  43. 43. Figura 45 - Configurando a classe principal - parte 2 Para escolher a Classe principal do projeto iremos escolher a opção Executar(lado esquerdo da tela), Ao clicar na opção Executar aparecerá a opções de escolha daClasse principal (centro da tela). Clicar no botão Procurar. Figura 46. Figura 46 - Configurando a classe principal - parte 3 Após clicar no botão procurar (Figura 46), aparecerão as Classes do projeto quecontem o método public static void main(String args[]){}. Escolher uma das Classeslistadas e clicar no botão Selecionar classe principal. Figura 47.Professor Hildeberto Melo - 2011
  44. 44. Figura 47 - Configurando a classe principal - parte 4Manipulando Componentes Swing (básico)Antes de começarmos a implementar a parte visual(telas) de nosso projeto é necessárioestudarmos alguns componentes Swing, então veremos os componentes JTextField,JComboBox, JButton e JTable.JTextField O componente JTextField serve para receber entradas de texto em umformulário. O método getText() serve para obter o conteúdo informado no JTextField, ex:JOptionPane.showMessageDialog(null, jTextField1.getText()); //aparecerá umamensagem com o conteúdo do JTextField. O método setText(String texto) serve para colocar um valor String noJTextField, ex: jTextField1.setText(“Eu amo o professor Melo”);//escreverá a Stringpassada no método para o componente JTextField.Professor Hildeberto Melo - 2011
  45. 45. Foi colocado no formulário dois JTextField e dois JButtons, onde o clique doprimeiro botão exibirá uma mensagem com o conteúdo do JTextField do nome, e osegundo botão colocará o texto do JTextField do nome 2 para o JTextField do nome.Figura 48. Figura 48 - Manipulando JTextField - parte 1 Colocar no evento do Clique dos botões os códigos que aparecem na Figura 49.Para isso basta dar dois cliques no botão e colocar o código-fonte correspondente. Figura 49 - Manipulando JTextField - parte 2JComboBox Vamos adicionar um JComboBox e três botões ao formulário. O primeiro botãoservirá para mostrar o índice do item escolhido do JComboBox, o segundo botãoservirá para mostrar o conteúdo do item escolhido no JComboBox e o terceiro botãoservirá para carregar dinamicamente informações no JComboBox. Figura 50.Professor Hildeberto Melo - 2011
  46. 46. Figura 50 - Manipulando JComboBox - parte 1 O método getSelectedIndex() retorna o índice (valor inteiro) do item escolhidodo JComboBox, O método getSelecedItem() retorna um Objeto que representa o itemdo JComboBox escolhido. A Figura 51 mostra o código-fonte correspondente ao cliquede cada botão para manipular o JComboBox. Figura 51 - Manipulando JComboBox - parte 2 A Figura 52 ilustra a execução dos cliques dos JButtons definidosanteriormente. Na Figura 52 área 1 temos a tela com a configuração padrão doJComboBox, com apenas quatro itens. A Figura 52 área 2 temos a execução doscliques dos botões e suas ações correspondentes, e na Figura 52 área 3 temos oProfessor Hildeberto Melo - 2011
  47. 47. JComboBox com os itens carregados no clique do JButton Carregardinamincamente. 3 1 2 Figura 52 - Manipulando JComboBox - parte 3JTableVamos adicionar um JTable e um JButton ao formulário. Figura 53.Professor Hildeberto Melo - 2011
  48. 48. Figura 53 - Manipulando JTable - parte 1 A Figura 54 mostra o código-fonte para carregar informações dinamicamente noJTable, onde serão colocadas duas colunas: uma para o nome e outra para o sobrenome, e serão colocados 10 linhas na JTable. Figura 54 - Manipulando JTable - parte 2Professor Hildeberto Melo - 2011
  49. 49. A Figura 55 ilustra a execução do clique do JButton definido anteriormente.Onde na tela da esquerda aparece o JTable com a configuração padrão e na tela dadireita aparece o JTable preenchido com duas colunas e dez linhas. Figura 55 - Manipulando JTable - parte 3Professor Hildeberto Melo - 2011
  50. 50. Codificando a Parte Visual do Sistema de VendasNosso sistema terá as seguintes telas: • Tela principal, a partir desta tela serão chamadas às telas de: o Tela de consulta de cliente, a partir desta tela serão chamadas às telas de: § Tela de cadastro de cliente § Tela de alteração de cliente o Tela de consulta de produto, a partir desta tela serão chamadas às telas de: § Tela de cadastro de produto § Tela de alteração de produto o Tela de consulta de venda, a partir desta tela serão chamadas às telas de: § Tela de cadastro de venda § Tela de alteração de vendaTela Principal do SistemaNa tela principal teremos três botões, o primeiro para chamar a tela de consulta declientes, o segundo para chamar a tela de consulta de produtos e o terceiro botão parachamar a tela de consulta de vendas. Figura 41 - Tela principal do Sistema de VendasProfessor Hildeberto Melo - 2011
  51. 51. Para as telas de consultas, cadastro e alteração, configurar a propriedadedefaultCloseOperation de todas as telas para DISPOSE, com esta configuração quandofor clicado o ícone de fechar (x) destas telas, não irá fechar o formulário principal.Telas de ConsultasTela de Consulta de ClientesA tela de consulta de clientes possui uma tabela onde serão exibidos os clientescadastrados. Também possuirá quatro botões: • Listar – no evento do seu click todos os clientes cadastrados no sistema; • Novo – no evento do seu click será aberta uma tela para ser cadastrado um novo cliente; • Alterar – no evento do seu click será aberta uma tela para ser alterada as informações de um cliente previamente cadastrado; • Remover – no evento do seu click será removido um cliente previamente cadastrado. Figura 42 - Tela de Consulta de ClientesTela de Consulta de ProdutosProfessor Hildeberto Melo - 2011
  52. 52. Seguindo o padrão da tela de consulta de clientes, a tela de consulta de produtos possuiuma tabela onde serão exibidos os produtos cadastrados. Também possuirá quatrobotões: • Listar – no evento do seu click todos os produtos cadastrados no sistema; • Novo – no evento do seu click será aberta uma tela para ser cadastrado um novo produto; • Alterar – no evento do seu click será aberta uma tela para ser alterada as informações de um produto previamente cadastrado; • Remover – no evento do seu click será removido um produto previamente cadastrado. Figura 43 - Tela de Consulta de ProdutosTela de Consulta de VendasSeguindo o padrão da tela de consulta de clientes e produtos, a tela de consulta devendas possui duas tabelas, na primeira tabela serão exibidas as vendas cadastradas, ena segunda tabela os itens correspondentes à venda selecionada da primeira tabela.Também possuirá quatro botões: • Listar – no evento do seu click todos os produtos cadastrados no sistema; • Novo – no evento do seu click será aberta uma tela para ser cadastrado um novo produto;Professor Hildeberto Melo - 2011
  53. 53. • Remover – no evento do seu click será removido um produto previamente cadastrado. Figura 44 - Tela de Consulta de VendasTelas de Cadastro e AlteraçãoTela de Cadastro e Alteração de ClienteA tela de cadastro de cliente possuirá dois campos de texto, que servirão para informar ocpf e nome do cliente. E dois botões um para salvar as informações do cliente e outropara cancelar o cadastro do cliente.Professor Hildeberto Melo - 2011
  54. 54. Figura 45 - Tela de Cadastro de ClienteA tela de alteração de cliente possuirá dois campos de texto, que servirão para atualizaro cpf e nome do cliente. E dois botões um para salvar as informações do cliente e outropara cancelar a operação de alteração do cliente. Quando a tela for aberta, apareceráautomaticamente as informações do cliente a ser alterado. Figura 46 - Tela de Alteração de ClienteTela de Cadastro e Alteração de ProdutoA tela de cadastro de produto possuirá três campos de texto, que servirão para informaro código de barras, descrição e preço do produto. E dois botões um para salvar asinformações do produto e outro para cancelar o cadastro do produto.Professor Hildeberto Melo - 2011
  55. 55. Figura 47 - Tela de Cadastro de ProdutoA tela de alteração de produto possuirá três campos de texto, que servirão para atualizaro código de barras, descrição e preço do produto. E dois botões um para salvar asinformações do produto e outro para cancelar a operação de alteração do produto.Quando a tela for aberta, aparecerá automaticamente as informações do produto a seralterado. Figura 48 - Tela de Alteração de ProdutoTela de Cadastro de VendaA tela de cadastro de venda está dividida em duas partes. Na primeira parte ela possuidois campos de texto, que servirão para informar o número e a data da venda. E umcombobox que mostrará todos os clientes cadastrados e servirá para escolher o clienteda venda.Na segunda parte foi colocado uma tabela que mostrará os itens da venda, dois campostexto, um para a quantidade e outro para o preço, mais um combobox que listará todosProfessor Hildeberto Melo - 2011
  56. 56. os produtos cadastrados. Teremos também dois botões uma para adicionar um item navenda e o outro para remover um item da venda.E dois botões um para salvar as informações do produto e outro para cancelar o cadastrodo produto. Figura 49 - Tela de Cadastro de VendaProfessor Hildeberto Melo - 2011
  57. 57. Código fonte das telasMétodos auxiliaresCentralizar frameEste método tem por finalidade centralizar a tela no desktop Figura 50 - Método centralizar frameTela principalA figura abaixo apresenta o código fonte do clique dos três botões, onde cada botãochamará a tela de consulta correspondente, por exemplo, o botão clientes chamará a telade consulta de clientes. Figura 51 - Código Fonte tela principalProfessor Hildeberto Melo - 2011
  58. 58. Telas do ClienteConsulta de ClientesA figura abaixo apresenta o código fonte do clique dos quatro botões, no caso dosbotões de novo e alterar chamará a tela correspondente, também podemos observar oscomandos para os botões listar e remover. Figura 52 - Código fonte tela consulta de clientesCadastro de ClientesCódigo dos botões Cancelar e SalvarProfessor Hildeberto Melo - 2011
  59. 59. Figura 53 - Código fonte tela novo clienteAlteração de ClientePara realizarmos a alteração de um cliente é necessário receber as informações docliente a ser alterado. Para esta tarefa, redefinimos o construtor do formulário para querecebesse um atributo do tipo Cliente. Figura 54 - Código fonte tela alterar clientePodemos observar que no construtor do formulário recebemos o cliente passado comoparâmetro e em seguida colocamos as informações do cliente nos jtextfieldcorrespondentes. Também podemos observar os comandos correspondentes aos cliquesdos botões cancela e salvar.Telas do ProdutoConsulta de produtosA figura abaixo apresenta o código fonte do clique dos quatro botões, no caso dosbotões de novo e alterar chamará a tela correspondente, também podemos observar oscomandos para os botões listar e remover.Professor Hildeberto Melo - 2011
  60. 60. Figura 55 - Código fonte tela consulta de produtosCadastro de produtosCódigo dos botões Cancelar e Salvar Figura 56 - Código fonte tela novo produtoAlteração de produtoPara realizarmos a alteração de um produto é necessário receber as informações doproduto a ser alterado. Para esta tarefa, redefinimos o construtor do formulário para querecebesse um atributo do tipo produto.Professor Hildeberto Melo - 2011
  61. 61. Figura 57 - Código fonte tela alterar produtoPodemos observar que no construtor do formulário recebemos o produto passado comoparâmetro e em seguida colocamos as informações do produto nos jtextfieldcorrespondentes. Também podemos observar os comandos correspondentes aos cliquesdos botões cancela e salvar.Professor Hildeberto Melo - 2011
  62. 62. Telas do VendaConsulta de vendasA figura abaixo apresenta o código fonte do clique dos três botões, no caso dos botõesde novo chamará a tela correspondente. Também podemos observar os comandos paraos botões listar e remover. Figura 58 - Código fonte tela consulta de vendas 1A figura abaixo apresenta o código fonte correspondente à apresentação dos itens de umdeterminada venda. Neste caso quando selecionarmos a venda com o clique do mouseserá executado este código. Figura 59 - Código fonte tela consulta de vendas 2Cadastro de VendaA tela de cadastro de venda possui três atributos, sendo dois deles utilizados para listaros clientes e produtos cadastrados pelo sistema. E um atributo do tipo Venda, será nesteatributo que colocaremos as informações manipuladas nesta tela.Professor Hildeberto Melo - 2011
  63. 63. Figura 60 - Código fonte tela cadastro de vendas 1O método carregarCombos() servirá para listar os produtos e clientes cadastrados emseus respectivos combobox. O método listarItens() serve para apresentar os itens destavenda na jTable dos itens desta venda. Figura 61 - Código fonte tela cadastro de vendas 2A figura abaixo apresenta as ações para a escolha do produto no combobox dosprodutos, e as ações para os botões remover item e novo item. Figura 62 - Código fonte tela cadastro de vendas 3A figura abaixo apresenta o código fonte para as ações para os botões de salvar ecancelar.Professor Hildeberto Melo - 2011
  64. 64. Figura 63 - Código fonte tela cadastro de vendas 4Trabalhando com Banco de DadosAnteriormente vimos como armazenar as informações do sistema em um ArrayList. Adesvantagem do ArrayList é o inconveniente de toda vez que fecharmos e abrirmos aaplicação novamente, teremos que refazer todos os cadastros.Utilizando um banco de dados teremos a possibilidade de trabalhar com informaçõespersistentes, em outras palavras, quando fecharmos a aplicação as informações estarãosalvas e poderão ser reutilizadas pela aplicação novamente.Vamos programar com acesso a bando de dados da seguinte forma, a conexão entre obando de dados e o sistema será feita através do Jdbc do java.Professor Hildeberto Melo - 2011
  65. 65. Estrutura do Banco De DadosAntes de começar a configurar uma conexão, será necessário criar o banco de dadospara armazenar as informações do sistema de vendas. Utilizaremos a seguinte estrutura:Tabela EstruturaCliente create table cliente( cpf varchar(20) primary key, Nome varchar(100) );Produto create table produto( codigoBarras varchar(20) primary key, descricao varchar(100), preco numeric(18,2) );Venda create table venda( numero int primary key, data varchar(10), cpf_cliente varchar(20) references cliente(cpf) );Itens da venda create table itensVenda( preco numeric(18,2), quantidade numeric(18,2), codigoBarras_produto varchar(20) references produto(codigoBarras), numero_venda int references venda(numero) );Professor Hildeberto Melo - 2011
  66. 66. Configurando uma ConexãoVeremos como criar a conexão com o banco de dados. • Windows 7: o Vá na pasta c:windowssysWon64 o Execute o aplicativo odbcad32.exe • Windows Vista e nas versões anteriores: o Iniciar do Windows o Configurações o Painel de Controle o Ferramentas Administrativas o Fontes de Dados ODBCSeguindo os passos descritos acima aparecerá esta tela, Para adicionar uma nova fonteclique no botão Adcionar Figura 64 - Configurando a conexão com o banco de dados - 1 Aparecerá esta tela com os drivers disponíveis para conexão, vamos escolher o Driver do Microsoft Access (*.mdb) e clicar em concluir.Professor Hildeberto Melo - 2011
  67. 67. Figura 65 - Configurando a conexão com o banco de dados - 2 Informar o nome da fonte de dados, ex: dbSistemaVendas. Figura 66 - Configurando a conexão com o banco de dados - 3 Selecionar o Banco de Dados, clicando no botão selecionar.Professor Hildeberto Melo - 2011
  68. 68. Figura 67 - Configurando a conexão com o banco de dados - 4 Depois de configurado, basta ir clicando nos botões “OK” para confirmar as operações.Criando as Classes para Trabalhar com a Conexão CriadaNão basta apenas criar uma conexão com o banco de dados, teremos que criar osarquivos necessários para podermos trabalhar com esta conexão criada.Classe de ConexãoNesta classe temos dois métodos, o primeiro tem a finalidade de abrir uma conexão como bando de dados, e a segunda em fechar esta conexão aberta.Quando trabalhamos com banco de dados, o ideal é abrirmos uma conexão, executar oque se deseja e depois fecharmos esta conexão. Ex.: Abrir a conexão com o banco dedados, em seguida cadastrar um novo cliente, depois fechar a conexão.Professor Hildeberto Melo - 2011
  69. 69. Figura 68 - Classe de Conexão com o banco de dadosClasse de RepositórioA classe de repositório com os comandos para manipulação do banco de dados, seguiráa mesma lógica da classe de repositório com ArrayList. Lembrando que para cada tipode classe(ArrayList e Banco de dados) teremos que utilizar os respectivos comandospara seu devido manuseio.Para cada método implementado foi seguida a seguinte lógica, primeiramente érealizada as validação necessárias para garantir a integridade e consistência dasinformações no banco de dados, depois é aberta a conexão com o banco de dados, emseguida é realizada a devida operação com o banco de dados, e por último é fechada àconexão com o banco de dados.Professor Hildeberto Melo - 2011
  70. 70. Estrutura da Classe RepositorioClienteOdbcA figura abaixo ilustra a classe repositorioClienteOdbc, nela estão os métodos referentesà remoção, inserção, atualização e seleção dos clientes, bem como o construtor e ométodo obterIntancia. Esta classe também segue o padrão singleton. Figura 69 - Estrutura da classe RepositorioClienteOdbcProfessor Hildeberto Melo - 2011
  71. 71. Método removerA figura abaixo ilustra a implementação do método remover, este método tem porfinalidade excluir um determinado cliente. Figura 70 - Método remover do RepositorioClienteOdbcProfessor Hildeberto Melo - 2011
  72. 72. Método inserirA figura abaixo ilustra a implementação do método inserir, este método tem porfinalidade cadastrar um novo cliente. Figura 71 - Método inserir do RepositorioClienteOdbcProfessor Hildeberto Melo - 2011
  73. 73. Método atualizarA figura abaixo ilustra a implementação do método atualizar, este método tem porfinalidade cadastrar um novo cliente. Figura 72 - Método atualizar do RepositorioClienteOdbcProfessor Hildeberto Melo - 2011
  74. 74. Método listar todosA figura abaixo ilustra a implementação do método listarTodos, este método tem porfinalidade retornar todos os clientes cadastrados. Figura 73 - Método listarTodos do RepositorioClienteOdbcProfessor Hildeberto Melo - 2011
  75. 75. Modificando as Telas para Trabalhar Com Banco de DadosAs mudanças são poucas e muito simples de fazer, basta chamar o métodocorrespondente à operação desejada da Classe RepositorioClienteOdbc. A figuraabaixo ilustra a mudança necessária, foi comentada a linha de comando que utilizava aClasse RepositorioCliente e foi adicionada uma linha e comando que utiliza a ClasseRepositorioClienteOdbc. Figura 74 - Mudança na GUI para utilizar banco de dadosConsiderações FinaisForam utilizadas apenas as rotinas básicas e necessárias para a confecção deste sistema,bem como as validações utilizadas para o manuseio do sistema. Vale salientar que cadasistema de venda possui suas regras de negócio específicas, portanto para adaptar estesistemas as necessidades de uma empresa, será necessário adaptar as validações paraque o mesmo mantenha a integridade e consistência das informações.Foi codificado apenas a classe correspondente à manipulação das informações docliente com banco de dados, para as demais classes (produtos e venda) basta seguir oexemplo da Classe RepositorioClienteOdbc.Professor Hildeberto Melo - 2011

×