Tutorial Sistema Vendas Em Java Com Swing
-
Upload
rodrigo-fernandes -
Category
Documents
-
view
112 -
download
16
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.