Escolar Documentos
Profissional Documentos
Cultura Documentos
Tutorial Sistema Vendas em Java Com Swing
Tutorial Sistema Vendas em Java Com Swing
Swing
Professor Hildeberto Melo - 2011
ndice
Sobre o autor .................................................................................................................................8
Introduo .....................................................................................................................................9
Configuraes ................................................................................................................................9
Tela principal do NetBeans..........................................................................................................10
Criando um novo projeto ............................................................................................................11
Definio do cenrio....................................................................................................................14
Codificando as Classes Bsicas ....................................................................................................16
Codificando a Classe Cliente....................................................................................................17
Codificando a Classe Produto ..................................................................................................20
Codificando a Classe Item de Venda .......................................................................................22
Codificando a Classe Venda.....................................................................................................23
Classe RepositorioCliente ........................................................................................................27
Implementao do Construtor, mtodos obterIntancia e listarTodos................................27
Implementao do Mtodo verificaExistencia ....................................................................28
Implementao do Mtodo Inserir Cliente .........................................................................28
Implementao do Mtodo Remover Cliente .....................................................................29
Implementao do Mtodo Atualizar Cliente .....................................................................29
Classe RepositorioProduto ......................................................................................................31
Implementao do Construtor e dos Mtodos Listar Todos e obterInstancia....................31
Implementao do Mtodo Inserir Produto .......................................................................32
Implementao do Mtodo Remover Produto ...................................................................32
Implementao do Mtodo Atualizar Produto ...................................................................33
Implementao do Mtodo Verifica Existncia...................................................................33
Classe RepositorioVenda .........................................................................................................35
Implementao do Construtor e dos Mtodos listarTodos e obterIntancia.......................35
Implementao do Mtodo Inserir Venda ..........................................................................36
Telas do Produto......................................................................................................................59
Consulta de produtos ..........................................................................................................59
Cadastro de produtos ..........................................................................................................60
Alterao de produto...........................................................................................................60
Telas do Venda ........................................................................................................................62
Consulta de vendas..............................................................................................................62
Cadastro de Venda...............................................................................................................62
Trabalhando com Banco de Dados..............................................................................................64
Estrutura do Banco De Dados..................................................................................................65
Configurando uma Conexo ....................................................................................................66
Criando as Classes para Trabalhar com a Conexo Criada ......................................................68
Classe de Conexo ...............................................................................................................68
Classe de Repositrio...............................................................................................................69
Estrutura da Classe RepositorioClienteOdbc.......................................................................70
Mtodo remover .................................................................................................................71
Mtodo inserir .....................................................................................................................72
Mtodo atualizar .................................................................................................................73
Mtodo listar todos .............................................................................................................74
Modificando as Telas para Trabalhar Com Banco de Dados ...................................................75
Consideraes Finais............................................................................................................75
Figuras
Figura 1 - Tela principal do NetBeans..........................................................................................10
Figura 2 - Criando novo projeto parte 1 ...................................................................................11
Figura 3 - Criando novo projeto parte 2 ...................................................................................12
Figura 4 - Criando novo projeto parte 3 ...................................................................................12
Figura 5 - Estrutura de pastas do projeto....................................................................................13
Figura 6 - Diagrama de Classes de Domnio.................................................................................14
Figura 7 - Diagrama com as classes referentes manipulao dos dados do sistema ...............14
Figura 8 - Criando uma classe no NetBeans parte 1....................................................................16
Figura 9 - Criando uma classe no NetBeans parte 2....................................................................17
Figura 10 - Configurando a classe Cliente parte 1 .......................................................................18
Figura 11 - Configurando a classe Cliente parte 2 .......................................................................18
Figura 12 - Configurando a classe Cliente parte 3 .......................................................................19
Figura 13 - Configurando a classe Cliente parte 4 .......................................................................19
Figura 14 - Configurando a classe Cliente parte 5 .......................................................................20
Figura 15 - Configurando a classe Cliente parte 6 .......................................................................20
Figura 16 - Configurando a classe Produto parte 1 .....................................................................21
Figura 17 - Configurando a classe Produto parte 2 .....................................................................21
Figura 18 - Configurando a classe ItemVenda parte 1.................................................................22
Figura 19 - Configurando a classe ItemVenda parte 2.................................................................23
Figura 20 - Configurando a classe Venda parte 1 ........................................................................24
Figura 21 - Configurando a classe Venda parte 2 ........................................................................24
Figura 22 - Mtodo para calcular o total da venda .....................................................................25
Figura 23 Classe RepositorioCliente .........................................................................................27
Figura 24 - Mtodos listarTodos, obterIntancia e construtor do RepositrioCliente .................28
Figura 25 - Mtodo verificaExistencia Cliente .............................................................................28
Figura 26 - Mtodo inserir Cliente...............................................................................................29
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:
Disciplinas Ministradas:
Banco de Dados,
Desenvolvimento WEB,
Estrutura de Dados,
Sistemas Distribudos,
Sistemas Operacionais,
Lgica Matemtica
Lgica de Programao
Informtica Bsica
Introduo
Neste documento veremos o passo a passo para o desenvolvimento de um sistema
bsico de gerenciamento de vendas. Foram aplicadas apenas as validaes necessrias
para confeccionar este sistema.
Configuraes
Para a confeco deste aplicativo utilizaremos a IDE NetBeans.
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 qual
representar o nosso sistema.
Para adicionar uma nova Classe ao projeto, deveremos seguir os seguintes passos: clicar
com boto direito do mouse no pacote chamado projetovendasjavaswing, em
seguida escolher a opo novo e depois a opo Class Java.
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 da
classe Cliente.
Para adicionarmos a Classe Produto ao sistema, basta seguir os passos descritos para a
classe Cliente. Vale salientar que deveremos efetuar as configuraes referentes ao
Produto.
Alm dos atributos quantidade e preo, pode-se observar que a classe ItemVenda tem
um relacionamento de agregao com a classe Produto. No diagrama de classes a
relao est definida da seguinte forma: Um item de venda possui um Produto. Neste
caso o ItemVenda ter um atributo do tipo Produto.
Alm dos atributos nmero e data, pode-se observar que a classe Venda tem um
relacionamento de agregao com a classe ItemVenda e a classe Cliente. No diagrama
de classes a relao est definida da seguinte forma: Uma Venda possui um conjunto de
ItemVenda. Neste caso a Venda ter um atributo do ArrayList<ItemVenda>. E para o
relacionamento de agregao com o Cliente a Venda ter um atributo do tipo Cliente,
seguindo a mesma situao do relacionamento entre o ItemVenda e Produto.
Classe RepositorioCliente
A figura abaixo ilustra a classe RepositorioClliente, podemos observar que foi
declarado um atributo do tipo ArrayList<Cliente>, 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.
Classe RepositorioProduto
A figura abaixo ilustra a classe RepositorioProduto, podemos observar que foi
declarado um atributo do tipo ArrayList<Produto>, 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.
Classe RepositorioVenda
A figura abaixo ilustra a classe RepositorioVenda, podemos observar que foi declarado
um atributo do tipo ArrayList<Venda>, 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.
Aps clicar no boto procurar (Figura 46), aparecero as Classes do projeto que
contem o mtodo public static void main(String args[]){}. Escolher uma das Classes
listadas e clicar no boto Selecionar classe principal. Figura 47.
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.
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.
JComboBox
Vamos adicionar um JComboBox e 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 JComboBox e o terceiro boto
servir para carregar dinamicamente informaes no JComboBox. Figura 50.
JComboBox
com
os
itens
carregados
no
clique
do
JButton
Carregar
dinamincamente.
3
1
JTable
Vamos adicionar um JTable e um JButton ao formulrio. Figura 53.
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:
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;
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;
Novo no evento do seu click ser aberta uma tela para ser cadastrado um novo
produto;
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.
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 outro
para cancelar a operao de alterao do cliente. Quando a tela for aberta, aparecer
automaticamente as informaes do cliente a ser alterado.
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.
A tela de alterao de produto possuir trs campos de texto, que serviro para atualizar
o 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.
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
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.
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.
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 os
comandos para os botes listar e remover.
Cadastro de Clientes
Cdigo dos botes Cancelar e Salvar
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.
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.
Cadastro de produtos
Cdigo dos botes Cancelar e Salvar
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.
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 para
os botes listar e remover.
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.
Professor Hildeberto Melo - 2011
A figura abaixo apresenta o cdigo fonte para as aes para os botes de salvar e
cancelar.
Estrutura
Cliente
Produto
Venda
Itens da venda
Windows 7:
o V na pasta c:\windows\sysWon64
o Execute o aplicativo odbcad32.exe
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 o
Driver do Microsoft Access (*.mdb) e clicar em concluir.
Professor Hildeberto Melo - 2011
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.
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.
Mtodo remover
A figura abaixo ilustra a implementao do mtodo remover, este mtodo tem por
finalidade excluir um determinado cliente.
Mtodo inserir
A figura abaixo ilustra a implementao do mtodo inserir, este mtodo tem por
finalidade cadastrar um novo cliente.
Mtodo atualizar
A figura abaixo ilustra a implementao do mtodo atualizar, este mtodo tem por
finalidade cadastrar um novo cliente.
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.