Tutorial Sistema Vendas Em Java Com Swing

download Tutorial Sistema Vendas Em Java Com Swing

of 75

Transcript of Tutorial Sistema Vendas Em Java Com Swing

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    1/75

    2011

    Confeco de Um Sistema de Vendas em Java comSwing

    Professor Hildeberto Melo - 2011

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    2/75

    2011

    ndice

    .................................................................................................................................8

    .....................................................................................................................................9

    C ................................................................................................................................9

    B..........................................................................................................10

    C ............................................................................................................11

    D ....................................................................................................................14

    C C B ....................................................................................................16

    C C C....................................................................................................17

    C C ..................................................................................................20

    C C .......................................................................................22

    C C .....................................................................................................23

    C C ........................................................................................................27

    C, ................................27

    E....................................................................28

    C .........................................................................28

    C.....................................................................29

    A C .....................................................................29

    C ......................................................................................................31

    C ....................31

    .......................................................................32

    ...................................................................32

    A ...................................................................33

    E...................................................................33

    C .........................................................................................................35

    C .......................35

    ..........................................................................36

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    3/75

    2011

    ......................................................................36

    A ......................................................................37

    E.........................................................................37

    .......................................................................................39

    C C .................................................................................41

    C ()................................................................................44

    .................................................................................................................................44

    CB ..............................................................................................................................45

    .......................................................................................................................................47

    C ......................................................................50

    .........................................................................................................50

    C ...................................................................................................................51

    C C................................................................................................51

    C ..............................................................................................51

    C .................................................................................................52

    C A .................................................................................................53

    C A C..............................................................................53

    C A ............................................................................54

    C ..................................................................................................55

    C .................................................................................................................57

    ..................................................................................................................57

    C .................................................................................................................57

    ...........................................................................................................................57

    C .......................................................................................................................58

    C C ............................................................................................................58

    C C............................................................................................................58

    A C ............................................................................................................59

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    4/75

    2011

    ......................................................................................................................59

    C ..........................................................................................................59

    C ..........................................................................................................60

    A ...........................................................................................................60

    ........................................................................................................................62

    C ..............................................................................................................62

    C ...............................................................................................................62

    B D..............................................................................................64

    E B D D..................................................................................................65

    C C ....................................................................................................66

    C C C C ......................................................68

    C C ...............................................................................................................68

    C ...............................................................................................................69

    E C C.......................................................................70

    .................................................................................................................71

    .....................................................................................................................72

    .................................................................................................................73

    .............................................................................................................74

    C B D ...................................................75

    C ............................................................................................................75

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    5/75

    2011

    Figuras

    1 B..........................................................................................10

    2 C 1 ...................................................................................11

    3 C 2 ...................................................................................12

    4 C 3 ...................................................................................12

    5 E ....................................................................................13

    6 D C D.................................................................................14

    7 D ...............14

    8 C B 1....................................................................16

    9 C B 2....................................................................17

    10 C C 1.......................................................................18

    11 C C 2.......................................................................18

    12 C C 3.......................................................................19

    13 C C 4.......................................................................19

    14 C C 5.......................................................................20

    15 C C 6.......................................................................20

    16 C 1 .....................................................................21

    17 C 2 .....................................................................21

    18 C 1.................................................................22

    19 C 2.................................................................23

    20 C 1........................................................................24

    21 C 2........................................................................24

    22 .....................................................................25

    23 C C .........................................................................................27

    24 , C .................28

    25 E C.............................................................................28

    26 C...............................................................................................29

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    6/75

    2011

    27 C...........................................................................................29

    28 C...........................................................................................30

    29 E ....................................................................31

    30 , ..............32

    31 .............................................................................................32

    32 .........................................................................................33

    33 .........................................................................................33

    34 ..........................................................................34

    35 E .......................................................................35

    36 C ...................................................36

    37 ................................................................................................36

    38 .............................................................................................37

    39 ............................................................................................37

    40 ..............................................................................38

    41 .........................................................................50

    42 C C......................................................................................51

    43 C ....................................................................................52

    44 C .......................................................................................53

    45 C C .......................................................................................54

    46 A C......................................................................................54

    47 C .....................................................................................55

    48 A ....................................................................................55

    49 C ........................................................................................56

    50 ..........................................................................................57

    51 C ........................................................................................57

    52 C ......................................................................58

    53 C ..................................................................................59

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    7/75

    2011

    54 C ................................................................................59

    55 C ....................................................................60

    56 C ................................................................................60

    57 C .............................................................................61

    58 C 1....................................................................62

    59 C 2 ....................................................................62

    60 C 1....................................................................63

    61 C 2....................................................................63

    62 C 3....................................................................63

    63 C 4....................................................................64

    64 C 1..................................................66

    65 C 2.................................................67

    66 C 3..................................................67

    67 C 4..................................................68

    68 C C ................................................................69

    69 E C .............................................................70

    70 C...........................................................71

    71 C ..............................................................72

    72 C...........................................................73

    73 C.......................................................74

    74 ..........................................................75

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    8/75

    2011

    Sobre o autor

    O professor Hildeberto Melo atua nas reas acadmica, desenvolvimento e consultorias

    em sistemas de informao, desenvolvimento e consultorias em banco de dados.Formao acadmica:

    Tcnico em Desenvolvimento de Sistemas Ibratec Instituto Brasileiro de

    Tecnologia;

    Bacharel em Sistemas de Informao FIR Faculdade Integrada do Recife;

    Especialista em Docncia no Ensino Superior FMN Faculdade Maurcio de

    Nassau;

    Mestre em Cincia da Computao UFPE Universidade Federal dePernambuco.

    Disciplinas Ministradas:

    Banco de Dados,

    Projeto de Banco de Dados,

    Desenvolvimento WEB,

    Estrutura de Dados,

    Programao Orientada a Objetos,

    Desenvolvimento de Aplicaes Desktop,

    Programao Cliente Servidor,

    Sistemas Distribudos,

    Sistemas Operacionais,

    Anlise de Projetos de Sistemas Orientado a Objetos,

    Linguagens: Java, C#, C, Pascal, Delphi, PHP, ASP.

    Lgica Matemtica

    Lgica de Programao

    Informtica Bsica

    Tecnologia da Informao e Sociedade

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    9/75

    2011

    Introduo

    Neste documento veremos o passo a passo para o desenvolvimento de um sistema

    bsico de gerenciamento de vendas. Foram aplicadas apenas as validaes necessriaspara confeccionar este sistema.

    Configuraes

    Para a confeco deste aplicativo utilizaremos a IDE NetBeans.

    Vamos comear com a instalao do JDK (Java Development Kit), necessrio

    ter instalado o JDK no computador para podermos comear a trabalhar com

    desenvolvimento em Java.

    Baixar o JDK

    Instalar o JDK no computadorBaixar o NetBeans do site www.netbeans.org. Aps baixar o NetBeans, efetue

    sua instalao.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    10/75

    2011

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

    parte central sero mostrados os arquivo em utilizao pelo programador. Na parte

    inferior, informaes sobre servidores, propriedades, console, etc. Na parte esquerda as

    propriedades dos arquivos do projeto. Conforme mostra Figura 1.

    Figura 1 - Tela principal do NetBeans

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    11/75

    2011

    Criando um novo projeto

    Para criarmos uma aplicao Swing, simples, basta acessar o menu: arquivo-

    >novoprojeto, conforme mostra a Figura 2.

    Figura 2 - Criando novo projeto parte 1

    Aparecer tela de Escolha do tipo de projeto, iremos escolher a categoriaJavae o projeto Aplicativo Java. Aps selecionar as opes ditas anteriormente cliqueno boto Prximo. Conforme mostra a Figura 3.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    12/75

    2011

    Figura 3 - Criando novo projeto parte 2

    Aparecer a tela de configurao do Projeto, onde constam as seguintes

    informaes do Nome do projeto e Localizao do projeto. Aps colocar as informaes

    solicitadas clicar no boto Finalizar. Conforme mostra Figura 4.

    Figura 4 - Criando novo projeto parte 3

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    13/75

    2011

    Aparecer na aba de projetos o projeto recm criado, contendo 5 (cinco) pastas:

    Pacotes de cdigo-fonte, pacote de testes, Load Generator Scripts, Bibliotecas e

    Bibliotecas de testes.

    Na pasta de Pacote de cdigo-fonte sero colocados os arquivos. Java que faro

    parte do projeto, dentro desta pasta foi criado automaticamente um pacote com o nome

    correspondente ao nome do projeto. Conforme mostra Figura 5

    Figura 5 - Estrutura de pastas do projeto

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    14/75

    2011

    Definio do cenrio

    O sistema de vendas a ser desenvolvido possui as seguintes entidades: clientes, produtos

    e as vendas com seus respectivos itens. Tomaremos por base o diagrama abaixo, no qualrepresentar o nosso sistema.

    Figura 6 - Diagrama de Classes de Domnio

    Para manipularmos as informaes do sistema de vendas necessrio incluirmos

    algumas entidades ao diagrama inicial. Estas entidades tm como objetivo principal

    implementar as rotinas necessrias para a manipulao das informaes do sistema.

    Figura 7 - Diagrama com as classes referentes manipulao dos dados do sistema

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    15/75

    2011

    Como podemos observar na Figura acima as classes de repositrios tm os seguintes

    mtodos:

    Inserir utilizado para inserir um determinado objeto no dispositivo dearmazenamento.

    remover utilizado para remover um determinado objeto, no qual este objetodeve estar previamente cadastrado no dispositivo de armazenamento.

    atualizar utilizado para atualizar os valores contidos em um objetopreviamente cadastrado no dispositivo de armazenamento.

    verifica existncia utilizado para verificar se as informaes de umdeterminado objeto esto presentes no conjunto de objetos cadastrados no

    dispositivo de armazenamento. Este mtodo ser utilizado para:

    o Na incluso: evitar o cadastro de dois objetos com as mesmas

    informaes;

    o Na excluso: Verificar se um determinado objeto est devidamente

    cadastrado, para posteriormente remov-lo.

    o Na alterao: Verificar se um determinado objeto est devidamente

    cadastrado, para posteriormente alter-lo.

    Listar utilizado para retornar todos os objetos que foram cadastrados nodispositivo de armazenamento. Obs.: as informaes contidas em cada objeto

    devero ser exibidas conforme o desenvolvedor da aplicao preferir, ex:

    apresentar as informaes em um JComboBox, em uma jTable, etc.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    16/75

    2011

    Codificando as Classes Bsicas

    As classes bsicas so Cliente, Produto, ItemVenda e Venda, estas classes

    representam o domnio da aplicao. Cada classe dever ser um arquivo . Java ondecada arquivo dever possuir todos os atributos e mtodos correspondentes.

    Para adicionar uma nova Classe ao projeto, deveremos seguir os seguintes passos: clicar

    com boto direito do mouse no pacote chamado projetovendasjavaswing, emseguida escolher a opo novo e depois a opo Class Java.

    Figura 8 - Criando uma classe no NetBeans parte 1

    Em seguida aparecer tela para configurao da Classe, neste caso informaremos o

    nome da Classe no qual codificaremos. Esta seqncia de passos dever ser seguida

    para todas as classes que faro parte do sistema.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    17/75

    2011

    Figura 9 - Criando uma classe no NetBeans parte 2

    Codificando a Classe Cliente

    Para adicionarmos a Classe Cliente ao sistema, necessrio seguir os passos descritos

    acima, aparecer uma tela de configurao inicial da Classe, nesta tela basta informar o

    nome da Classe, que neste caso, dever se chamar Cliente, e clicar no botoFinalizar.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    18/75

    2011

    Figura 10 - Configurando a classe Cliente parte 1

    Aparecer a estrutura bsica de uma classe em Java, que ter apenas o qualificador de

    acesso public, a palavra reservada class que define o tipo de arquivo e nome daclasse Cliente.

    Figura 11 - Configurando a classe Cliente parte 2

    Codificaremos os atributos da classe Cliente, estes atributos foram definidos nodiagrama de classe, neste caso os atributos nomee cpf, ambos do tipo String.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    19/75

    2011

    Figura 12 - Configurando a classe Cliente parte 3

    Para encapsular automaticamente os atributos da classe Cliente, seguiremos os seguintes

    passos: Clicar com o boto direito do mouse em cima de qualquer atributo, depois

    escolher a opo refatorar, em seguida encapsular campos, conforme ilustrafigura abaixo.

    Figura 13 - Configurando a classe Cliente parte 4

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    20/75

    2011

    Aparecer a tela de configurao dos gets e sets correspondentes ao referidosatributos da classe. Clicar no boto Selecionar tudo, em seguida clicar no botoRefatorar

    Figura 14 - Configurando a classe Cliente parte 5

    Seguindo as etapas citadas acima, foi gerado automaticamente os gets e setsconforme ilustra a figura abaixo.

    Figura 15 - Configurando a classe Cliente parte 6

    Codificando a Classe Produto

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    21/75

    2011

    Para adicionarmos a Classe Produtoao sistema, basta seguir os passos descritos para aclasse Cliente. Vale salientar que deveremos efetuar as configuraes referentes aoProduto.

    Figura 16 - Configurando a classe Produto parte 1

    Depois de codificar os atributos referentes ao Produto e gerar os gets e sets, a classeProduto ficar assim.

    Figura 17 - Configurando a classe Produto parte 2

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    22/75

    2011

    Codificando a Classe Item de Venda

    Para adicionarmos a Classe ItemVenda ao sistema, basta seguir os passos descritospara a classe Cliente. Vale salientar que deveremos efetuar as configuraes referentesao ItemVenda.

    Figura 18 - Configurando a classe ItemVenda parte 1

    Alm dos atributos quantidade e preo, pode-se observar que a classe ItemVendatemum relacionamento de agregao com a classe Produto. No diagrama de classes arelao est definida da seguinte forma: Um item de venda possui um Produto. Neste

    caso o ItemVendater um atributo do tipo Produto.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    23/75

    2011

    Figura 19 - Configurando a classe ItemVenda parte 2

    Foi necessrio codificar um construtor para a classe ItemVenda, no construtor serinstanciado automaticamente o atributo Produto, isto se faz necessrio para evitarpossveis erros no manuseio do ItemVenda.

    Codificando a Classe Venda

    Para adicionarmos a Classe Vendaao sistema, basta seguir os passos descritos para aclasse Cliente. Vale salientar que deveremos efetuar as configuraes referentes Venda.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    24/75

    2011

    Figura 20 - Configurando a classe Venda parte 1

    Alm dos atributos nmero e data, pode-se observar que a classe Venda tem umrelacionamento de agregaocom a classe ItemVendae a classe Cliente. No diagramade classes a relao est definida da seguinte forma: Uma Vendapossui um conjunto de

    ItemVenda. Neste caso a Venda ter um atributo do ArrayList. E para orelacionamento de agregao com o Clientea Vendater um atributo do tipo Cliente,seguindo a mesma situao do relacionamento entre o ItemVendae Produto.

    Figura 21 - Configurando a classe Venda parte 2

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    25/75

    2011

    Foi necessrio codificar um construtor para a classe Venda, no construtor serinstanciado automaticamente o atributo itensDaVenda (do tipo ArrayList)

    e atributo cliente, isto se faz necessrio para evitar possveis erros no manuseio da

    Venda.

    A classe Venda possui um mtodo responsvel por calcular o total geral da Venda. Algica utilizada foi percorrer todos os itens pertencentes Venda e acumular o clculo

    da (quantidade * preo) de cada item.

    Figura 22 - Mtodo para calcular o total da venda

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    26/75

    2011

    Codificando as Classes de Repositrios

    Sero codificadas trs classes de repositrios, RepositorioCliente, RepositorioProduto e

    RepositorioVenda. Cada classe corresponder aos clientes, produtos e vendas com seusrespectivos itens.

    Utilizaremos trs ArrayList para armazenar as informaes referentes aos clientes,

    produtos e venda. Em cada mtodo ser implementada as validaes bsicas referentes a

    cada rotina.

    Antes de iniciar a codificao destas classes, vamos revisar algumas coisas sobre o

    ArrayList. O ArrayList pertence ao pacote java.util.ArrayList e consiste numa classe

    capaz de armazenar uma coleo de objetos. A manipulao dos objetos contidos no

    mesmo dinmica e pode ser uma lista de quaisquer objetos, ou uma lista de objetos

    especficos. Alguns mtodos:

    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 ArrayList

    Relembrando os Mtodos a serem implementados em cada repositrio:

    Inserir utilizado para inserir um determinado objeto no dispositivo dearmazenamento.

    remover utilizado para remover um determinado objeto, no qual este objetodeve estar previamente cadastrado no dispositivo de armazenamento.

    atualizar utilizado para atualizar os valores contidos em um objetopreviamente cadastrado no dispositivo de armazenamento.

    verifica existncia utilizado para verificar se as informaes de umdeterminado objeto esto presentes no conjunto de objetos cadastrados no

    dispositivo de armazenamento. Este mtodo ser utilizado para:

    o Na incluso: evitar o cadastro de dois objetos com as mesmas

    informaes;

    o Na excluso: Verificar se um determinado objeto est devidamente

    cadastrado, para posteriormente remov-lo.

    o Na alterao: Verificar se um determinado objeto est devidamente

    cadastrado, para posteriormente alter-lo.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    27/75

    2011

    Listar utilizado para retornar todos os objetos que foram cadastrados nodispositivo de armazenamento. Obs.: as informaes contidas em cada objeto

    devero ser exibidas conforme o desenvolvedor da aplicao preferir, ex:

    apresentar as informaes em um JComboBox, em uma jTable, etc.

    Classe RepositorioCliente

    A figura abaixo ilustra a classe RepositorioClliente, podemos observar que foi

    declarado um atributo do tipo ArrayList, este atributo tem por finalidade

    armazenar todos os clientes cadastrado pelo sistema. Tambm foi declarado um atributo

    do tipo RepositorioCliente, este atributo tem por finalidade implementar este repositrio

    com o padro singleton.

    Tambm podemos observar a assinatura dos mtodos definidos no diagrama de classes.

    Figura 23 Classe RepositorioCliente

    Implementao do Construtor, mtodos obterIntancia e listarTodos

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    28/75

    2011

    Figura 24 - Mtodos listarTodos, obterIntancia e construtor do RepositrioCliente

    Implementao do Mtodo verificaExistencia

    Este mtodo tem como objetivo pesquisar um objeto pelo seu CPF e retornar o ndice

    deste objeto, caso no seja encontrado nenhum objeto no qual corresponda ao critrio de

    pesquisa, o mtodo retornar -1.

    Figura 25 - Mtodo verificaExistencia Cliente

    Implementao do Mtodo Inserir Cliente

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    29/75

    2011

    Figura 26 - Mtodo inserir Cliente

    Implementao do Mtodo Remover Cliente

    Figura 27 - Mtodo remover Cliente

    Implementao do Mtodo Atualizar Cliente

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    30/75

    2011

    Figura 28 - Mtodo atualizar Cliente

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    31/75

    2011

    Classe RepositorioProduto

    A figura abaixo ilustra a classe RepositorioProduto, podemos observar que foi

    declarado um atributo do tipo ArrayList, este atributo tem por finalidade

    armazenar todos os produtos cadastrado pelo sistema. Tambm foi declarado um

    atributo do tipo RepositorioProduto, este atributo tem por finalidade implementar este

    repositrio com o padro singleton.

    Tambm podemos observar a assinatura dos mtodos definidos no diagrama de classes.

    Figura 29 - Estrutura da classe RepositrioProduto

    Implementao do Construtor e dos Mtodos Listar Todos e obterInstancia

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    32/75

    2011

    Figura 30 - Mtodos listarTodos, obterInstancia e construtor do RepositrioProduto

    Implementao do Mtodo Inserir Produto

    Figura 31 - Mtodo inserir produto

    Implementao do Mtodo Remover Produto

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    33/75

    2011

    Figura 32 - Mtodo remover produto

    Implementao do Mtodo Atualizar Produto

    Figura 33 - Mtodo atualizar produto

    Implementao do Mtodo Verifica Existncia

    Este mtodo tem como objetivo pesquisar um objeto pelo seu cdigo de barras e

    retornar o ndice deste objeto, caso no seja encontrado nenhum objeto no qualcorresponda ao critrio de pesquisa, o mtodo retornar -1.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    34/75

    2011

    Figura 34 - Mtodo verifica existncia produto

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    35/75

    2011

    Classe RepositorioVenda

    A figura abaixo ilustra a classe RepositorioVenda, podemos observar que foi declaradoum atributo do tipo ArrayList, este atributo tem por finalidade armazenar todos

    os produtos cadastrado pelo sistema. Tambm foi declarado um atributo do tipo

    RepositorioVenda, este atributo tem por finalidade implementar este repositrio com o

    padro singleton.

    Tambm podemos observar a assinatura dos mtodos definidos no diagrama de classes.

    Figura 35 - Estrutura da classe RepositrioVenda

    Implementao do Construtor e dos Mtodos listarTodos e obterIntancia

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    36/75

    2011

    Figura 36 - Construtor e mtodos listar todos e obterIntancia

    Implementao do Mtodo Inserir Venda

    Figura 37 - Mtodo inserir venda

    Implementao do Mtodo Remover Venda

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    37/75

    2011

    Figura 38 - Mtodo remover venda

    Implementao do Mtodo Atualizar Venda

    Figura 39 - Mtodo atualizar venda

    Implementao Mtodo verificaExistncia

    Este mtodo tem como objetivo pesquisar um objeto pelo seu nmero e retornar ondice deste objeto, caso no seja encontrado nenhum objeto no qual corresponda ao

    critrio de pesquisa, o mtodo retornar -1.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    38/75

    2011

    Figura 40 - Mtodo verifica existncia venda

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    39/75

    2011

    Trabalhando com componentes Swing

    Vamos colocar um formulrio JFrame, para esta tarefa basta clicar com o boto

    direito do mouse em cima do pacote meuprimeiroprojetoe escolher as opes novo->Formulrio JFrame. Conforme mostra Figura 41.

    Figura 41 - Incluindo um JFrame ao projeto - parte 1

    Aparecer uma tela para configurao do JFrame, com as informaes do nome

    da classe, localizao e pacote. Figura 42.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    40/75

    2011

    Figura 42 - Incluindo um JFrame ao projeto - parte 2

    Aps a configurao inicial do JFrame, aparecer um formulrio (meio da tela)

    e a paleta de componentes (lado direito superior da tela), a paleta de componentes

    contem os principais componentes Swing, para colocar no formulrio basta clicar no

    componente e arrastar para o formulrio. Figura 43.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    41/75

    2011

    Figura 43 - Incluindo um JFrame ao projeto - parte 3

    Configurando a Classe Principal do Projeto

    Por padro quando criamos um projeto aplicao Java no NetBeans, ele criauma ClasseMain.javaautomaticamente e a coloca como classe principal do sistema.

    No projeto que foi criado MeuPrimeiroProjeto, existem duas classes a

    Main.java e FormMain.java. Para configurar a Classe principal do projeto

    necessrio ir ao menu Arquivo->Projeto Properties. Figura 44.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    42/75

    2011

    Figura 44 - Configurando a classe principal - parte 1

    Aparecer a tela de propriedades do projeto, onde poderemos personalizar nossa

    aplicao. Figura 45.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    43/75

    2011

    Figura 45 - Configurando a classe principal - parte 2

    Para escolher a Classe principal do projeto iremos escolher a opo Executar

    (lado esquerdo da tela), Ao clicar na opo Executaraparecer a opes de escolha daClasse principal(centro da tela). Clicar no boto Procurar. Figura 46.

    Figura 46 - Configurando a classe principal - parte 3

    Aps clicar no boto procurar (Figura 46), aparecero as Classesdo projeto que

    contem o mtodo public static void main(String args[]){}. Escolher uma das Classeslistadas e clicar no boto Selecionar classe principal. Figura 47.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    44/75

    2011

    Figura 47 - Configurando a classe principal - parte 4

    Manipulando Componentes Swing (bsico)

    Antes de comearmos a implementar a parte visual(telas) de nosso projeto necessrio

    estudarmos alguns componentes Swing, ento veremos os componentes JTextField,JComboBox, JButton e JTable.

    JTextField

    O componente JTextField serve para receber entradas de texto em um

    formulrio.

    O mtodo getText()serve para obter o contedo informado no JTextField, ex:

    JOptionPane.showMessageDialog(null, jTextField1.getText()); //aparecer uma

    mensagem com o contedo do JTextField.

    O mtodo setText(String texto) serve para colocar um valor String no

    JTextField, ex:jTextField1.setText(Eu amo o professor Melo);//escrever a String

    passada no mtodo para o componente JTextField.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    45/75

    2011

    Foi colocado no formulrio dois JTextFielde dois JButtons, onde o clique do

    primeiro boto exibir uma mensagem com o contedo do JTextField do nome, e o

    segundo boto colocar o texto do JTextFielddo nome 2 para o JTextFielddo nome.

    Figura 48.

    Figura 48 - Manipulando JTextField - parte 1

    Colocar no evento do Clique dos botes os cdigos que aparecem na Figura 49.

    Para isso basta dar dois cliques no boto e colocar o cdigo-fonte correspondente.

    Figura 49 - Manipulando JTextField - parte 2

    JComboBox

    Vamos adicionar um JComboBoxe trs botes ao formulrio. O primeiro boto

    servir para mostrar o ndice do item escolhido do JComboBox, o segundo boto

    servir para mostrar o contedo do item escolhido no JComboBoxe o terceiro boto

    servir para carregar dinamicamente informaes no JComboBox. Figura 50.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    46/75

    2011

    Figura 50 - Manipulando JComboBox - parte 1

    O mtodo getSelectedIndex()retorna o ndice (valor inteiro) do item escolhido

    do JComboBox, O mtodo getSelecedItem()retorna um Objeto que representa o item

    do JComboBoxescolhido. A Figura 51 mostra o cdigo-fonte correspondente ao clique

    de cada boto para manipular o JComboBox.

    Figura 51 - Manipulando JComboBox - parte 2

    A Figura 52 ilustra a execuo dos cliques dos JButtons definidos

    anteriormente. Na Figura 52 rea 1 temos a tela com a configurao padro do

    JComboBox, com apenas quatro itens. A Figura 52 rea 2 temos a execuo dos

    cliques dos botes e suas aes correspondentes, e na Figura 52 rea 3 temos o

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    47/75

    2011

    JComboBox com os itens carregados no clique do JButton Carregar

    dinamincamente.

    Figura 52 - Manipulando JComboBox - parte 3

    JTable

    Vamos adicionar um JTablee um JButtonao formulrio. Figura 53.

    1

    2

    3

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    48/75

    2011

    Figura 53 - Manipulando JTable - parte 1

    A Figura 54 mostra o cdigo-fonte para carregar informaes dinamicamente no

    JTable, onde sero colocadas duas colunas: uma para o nome e outra para o sobrenome, e sero colocados 10 linhas na JTable.

    Figura 54 - Manipulando JTable - parte 2

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    49/75

    2011

    A Figura 55 ilustra a execuo do clique do JButton definido anteriormente.

    Onde na tela da esquerda aparece o JTable com a configurao padro e na tela da

    direita aparece o JTablepreenchido com duas colunas e dez linhas.

    Figura 55 - Manipulando JTable - parte 3

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    50/75

    2011

    Codificando a Parte Visual do Sistema de Vendas

    Nosso sistema ter as seguintes telas:

    Tela principal, a partir desta tela sero chamadas s telas de:

    o Tela de consulta de cliente, a partir desta tela sero chamadas s telas de:

    Tela de cadastro de cliente

    Tela de alterao de cliente

    o Tela de consulta de produto, a partir desta tela sero chamadas s telas

    de:

    Tela de cadastro de produto

    Tela de alterao de produto

    o Tela de consulta de venda, a partir desta tela sero chamadas s telas de:

    Tela de cadastro de venda

    Tela de alterao de venda

    Tela Principal do Sistema

    Na tela principal teremos trs botes, o primeiro para chamar a tela de consulta de

    clientes, o segundo para chamar a tela de consulta de produtos e o terceiro boto para

    chamar a tela de consulta de vendas.

    Figura 41 - Tela principal do Sistema de Vendas

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    51/75

    2011

    Para as telas de consultas, cadastro e alterao, configurar a propriedade

    defaultCloseOperation de todas as telas para DISPOSE, com esta configurao quando

    for clicado o cone de fechar (x) destas telas, no ir fechar o formulrio principal.

    Telas de Consultas

    Tela de Consulta de Clientes

    A tela de consulta de clientes possui uma tabela onde sero exibidos os clientes

    cadastrados. Tambm possuir quatro botes:

    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

    informaes de um cliente previamente cadastrado;

    Remover no evento do seu click ser removido um cliente previamente

    cadastrado.

    Figura 42 - Tela de Consulta de Clientes

    Tela de Consulta de Produtos

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    52/75

    2011

    Seguindo o padro da tela de consulta de clientes, a tela de consulta de produtos possui

    uma tabela onde sero exibidos os produtos cadastrados. Tambm possuir quatro

    botes:

    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

    informaes de um produto previamente cadastrado;

    Remover no evento do seu click ser removido um produto previamente

    cadastrado.

    Figura 43 - Tela de Consulta de Produtos

    Tela de Consulta de Vendas

    Seguindo o padro da tela de consulta de clientes e produtos, a tela de consulta de

    vendas possui duas tabelas, na primeira tabela sero exibidas as vendas cadastradas, e

    na segunda tabela os itens correspondentes venda selecionada da primeira tabela.

    Tambm possuir quatro botes:

    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 novoproduto;

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    53/75

    2011

    Remover no evento do seu click ser removido um produto previamente

    cadastrado.

    Figura 44 - Tela de Consulta de Vendas

    Telas de Cadastro e Alterao

    Tela de Cadastro e Alterao de Cliente

    A tela de cadastro de cliente possuir dois campos de texto, que serviro para informar o

    cpf e nome do cliente. E dois botes um para salvar as informaes do cliente e outro

    para cancelar o cadastro do cliente.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    54/75

    2011

    Figura 45 - Tela de Cadastro de Cliente

    A tela de alterao de cliente possuir dois campos de texto, que serviro para atualizar

    o cpf e nome do cliente. E dois botes um para salvar as informaes do cliente e outropara cancelar a operao de alterao do cliente. Quando a tela for aberta, aparecer

    automaticamente as informaes do cliente a ser alterado.

    Figura 46 - Tela de Alterao de Cliente

    Tela de Cadastro e Alterao de Produto

    A tela de cadastro de produto possuir trs campos de texto, que serviro para informar

    o cdigo de barras, descrio e preo do produto. E dois botes um para salvar as

    informaes do produto e outro para cancelar o cadastro do produto.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    55/75

    2011

    Figura 47 - Tela de Cadastro de Produto

    A tela de alterao de produto possuir trs campos de texto, que serviro para atualizaro cdigo de barras, descrio e preo do produto. E dois botes um para salvar as

    informaes do produto e outro para cancelar a operao de alterao do produto.

    Quando a tela for aberta, aparecer automaticamente as informaes do produto a ser

    alterado.

    Figura 48 - Tela de Alterao de Produto

    Tela de Cadastro de Venda

    A tela de cadastro de venda est dividida em duas partes. Na primeira parte ela possui

    dois campos de texto, que serviro para informar o nmero e a data da venda. E um

    combobox que mostrar todos os clientes cadastrados e servir para escolher o cliente

    da venda.

    Na segunda parte foi colocado uma tabela que mostrar os itens da venda, dois campos

    texto, um para a quantidade e outro para o preo, mais um combobox que listar todos

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    56/75

    2011

    os produtos cadastrados. Teremos tambm dois botes uma para adicionar um item na

    venda e o outro para remover um item da venda.

    E dois botes um para salvar as informaes do produto e outro para cancelar o cadastro

    do produto.

    Figura 49 - Tela de Cadastro de Venda

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    57/75

    2011

    Cdigo fonte das telas

    Mtodos auxiliares

    Centralizar frame

    Este mtodo tem por finalidade centralizar a tela no desktop

    Figura 50 - Mtodo centralizar frame

    Tela principal

    A figura abaixo apresenta o cdigo fonte do clique dos trs botes, onde cada boto

    chamar a tela de consulta correspondente, por exemplo, o boto clientes chamar a tela

    de consulta de clientes.

    Figura 51 - Cdigo Fonte tela principal

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    58/75

    2011

    Telas do Cliente

    Consulta de Clientes

    A figura abaixo apresenta o cdigo fonte do clique dos quatro botes, no caso dos

    botes de novo e alterar chamar a tela correspondente, tambm podemos observar oscomandos para os botes listar e remover.

    Figura 52 - Cdigo fonte tela consulta de clientes

    Cadastro de Clientes

    Cdigo dos botes Cancelare Salvar

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    59/75

    2011

    Figura 53 - Cdigo fonte tela novo cliente

    Alterao de Cliente

    Para realizarmos a alterao de um cliente necessrio receber as informaes do

    cliente a ser alterado. Para esta tarefa, redefinimos o construtor do formulrio para que

    recebesse um atributo do tipo Cliente.

    Figura 54 - Cdigo fonte tela alterar cliente

    Podemos observar que no construtor do formulrio recebemos o cliente passado como

    parmetro e em seguida colocamos as informaes do cliente nos jtextfield

    correspondentes. Tambm podemos observar os comandos correspondentes aos cliques

    dos botes cancela e salvar.

    Telas do Produto

    Consulta de produtos

    A figura abaixo apresenta o cdigo fonte do clique dos quatro botes, no caso dos

    botes de novo e alterar chamar a tela correspondente, tambm podemos observar os

    comandos para os botes listar e remover.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    60/75

    2011

    Figura 55 - Cdigo fonte tela consulta de produtos

    Cadastro de produtos

    Cdigo dos botes Cancelare Salvar

    Figura 56 - Cdigo fonte tela novo produto

    Alterao de produto

    Para realizarmos a alterao de um produto necessrio receber as informaes do

    produto a ser alterado. Para esta tarefa, redefinimos o construtor do formulrio para que

    recebesse um atributo do tipo produto.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    61/75

    2011

    Figura 57 - Cdigo fonte tela alterar produto

    Podemos observar que no construtor do formulrio recebemos o produto passado como

    parmetro e em seguida colocamos as informaes do produto nos jtextfield

    correspondentes. Tambm podemos observar os comandos correspondentes aos cliques

    dos botes cancela e salvar.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    62/75

    2011

    Telas do Venda

    Consulta de vendas

    A figura abaixo apresenta o cdigo fonte do clique dos trs botes, no caso dos botes

    de novo chamar a tela correspondente. Tambm podemos observar os comandos paraos botes listar e remover.

    Figura 58 - Cdigo fonte tela consulta de vendas 1A figura abaixo apresenta o cdigo fonte correspondente apresentao dos itens de um

    determinada venda. Neste caso quando selecionarmos a venda com o clique do mouse

    ser executado este cdigo.

    Figura 59 - Cdigo fonte tela consulta de vendas 2

    Cadastro de Venda

    A tela de cadastro de venda possui trs atributos, sendo dois deles utilizados para listar

    os clientes e produtos cadastrados pelo sistema. E um atributo do tipo Venda, ser neste

    atributo que colocaremos as informaes manipuladas nesta tela.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    63/75

    2011

    O mtodo carregarCombos() servir para listar os produtos e clientes cadastrados emseus respectivos combobox. O mtodo listarItens() serve para apresentar os itens desta

    venda na jTable dos itens desta venda.

    A figura abaixo apresenta as aes para a escolha do produto no combobox dos

    produtos, e as aes para os botes remover item e novo item.

    A figura abaixo apresenta o cdigo fonte para as aes para os botes de salvar e

    cancelar.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    64/75

    2011

    Anteriormente vimos como armazenar as informaes do sistema em um ArrayList. A

    desvantagem do ArrayList o inconveniente de toda vez que fecharmos e abrirmos a

    aplicao novamente, teremos que refazer todos os cadastros.

    Utilizando um banco de dados teremos a possibilidade de trabalhar com informaes

    persistentes, em outras palavras, quando fecharmos a aplicao as informaes estarosalvas e podero ser reutilizadas pela aplicao novamente.

    Vamos programar com acesso a bando de dados da seguinte forma, a conexo entre o

    bando de dados e o sistema ser feita atravs do Jdbc do java.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    65/75

    2011

    Estrutura do Banco De Dados

    Antes de comear a configurar uma conexo, ser necessrio criar o banco de dados

    para armazenar as informaes do sistema de vendas. Utilizaremos a seguinte estrutura:

    Tabela Estrutura

    Cliente 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)

    );

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    66/75

    2011

    Configurando uma Conexo

    Veremos como criar a conexo com o banco de dados.

    Windows 7:

    o V na pasta c:\windows\sysWon64

    o Execute o aplicativo odbcad32.exe

    Windows Vista e nas verses anteriores:

    o Iniciar do Windows

    o Configuraes

    o Painel de Controle

    o Ferramentas Administrativas

    o Fontes de Dados ODBC

    Seguindo os passos descritos acima aparecer esta tela, Para adicionar uma nova fonte

    clique no boto Adcionar

    Aparecer esta tela com os drivers disponveis para conexo, vamos escolher oDriver do Microsoft Access (*.mdb) e clicar em concluir.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    67/75

    2011

    Informar o nome da fonte de dados, ex: dbSistemaVendas.

    Selecionar o Banco de Dados, clicando no boto selecionar.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    68/75

    2011

    Depois de configurado, basta ir clicando nos botes OK para confirmar as

    operaes.

    Criando as Classes para Trabalhar com a Conexo Criada

    No basta apenas criar uma conexo com o banco de dados, teremos que criar os

    arquivos necessrios para podermos trabalhar com esta conexo criada.

    Classe de Conexo

    Nesta classe temos dois mtodos, o primeiro tem a finalidade de abrir uma conexo com

    o bando de dados, e a segunda em fechar esta conexo aberta.

    Quando trabalhamos com banco de dados, o ideal abrirmos uma conexo, executar o

    que se deseja e depois fecharmos esta conexo. Ex.: Abrir a conexo com o banco de

    dados, em seguida cadastrar um novo cliente, depois fechar a conexo.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    69/75

    2011

    Classe de Repositrio

    A classe de repositrio com os comandos para manipulao do banco de dados, seguir

    a mesma lgica da classe de repositrio com ArrayList. Lembrando que para cada tipo

    de classe(ArrayList e Banco de dados) teremos que utilizar os respectivos comandos

    para seu devido manuseio.

    Para cada mtodo implementado foi seguida a seguinte lgica, primeiramente

    realizada as validao necessrias para garantir a integridade e consistncia das

    informaes no banco de dados, depois aberta a conexo com o banco de dados, em

    seguida realizada a devida operao com o banco de dados, e por ltimo fechada

    conexo com o banco de dados.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    70/75

    2011

    Estrutura da Classe RepositorioClienteOdbc

    A figura abaixo ilustra a classe repositorioClienteOdbc, nela esto os mtodos referentes

    remoo, insero, atualizao e seleo dos clientes, bem como o construtor e o

    mtodo obterIntancia. Esta classe tambm segue o padro singleton.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    71/75

    2011

    Mtodo remover

    A figura abaixo ilustra a implementao do mtodo remover, este mtodo tem por

    finalidade excluir um determinado cliente.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    72/75

    2011

    Mtodo inserir

    A figura abaixo ilustra a implementao do mtodo inserir, este mtodo tem por

    finalidade cadastrar um novo cliente.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    73/75

    2011

    Mtodo atualizar

    A figura abaixo ilustra a implementao do mtodo atualizar, este mtodo tem por

    finalidade cadastrar um novo cliente.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    74/75

    2011

    Mtodo listar todos

    A figura abaixo ilustra a implementao do mtodo listarTodos, este mtodo tem por

    finalidade retornar todos os clientes cadastrados.

  • 5/27/2018 Tutorial Sistema Vendas Em Java Com Swing

    75/75

    2011

    Modificando as Telas para Trabalhar Com Banco de Dados

    As mudanas so poucas e muito simples de fazer, basta chamar o mtodo

    correspondente operao desejada da Classe RepositorioClienteOdbc. A figuraabaixo ilustra a mudana necessria, foi comentada a linha de comando que utilizava a

    Classe RepositorioClientee foi adicionada uma linha e comando que utiliza a ClasseRepositorioClienteOdbc.

    Consideraes Finais

    Foram utilizadas apenas as rotinas bsicas e necessrias para a confeco deste sistema,bem como as validaes utilizadas para o manuseio do sistema. Vale salientar que cada

    sistema de venda possui suas regras de negcio especficas, portanto para adaptar este

    sistemas as necessidades de uma empresa, ser necessrio adaptar as validaes para

    que o mesmo mantenha a integridade e consistncia das informaes.

    Foi codificado apenas a classe correspondente manipulao das informaes do

    cliente com banco de dados, para as demais classes (produtos e venda) basta seguir o

    exemplo da Classe RepositorioClienteOdbc.