Tutorial Sistema Vendas em Java Com Swing
Tutorial Sistema Vendas em Java Com Swing
Tutorial Sistema Vendas em Java Com Swing
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
Implementao do Mtodo Remover Venda ......................................................................36 Implementao do Mtodo Atualizar Venda ......................................................................37 Implementao Mtodo verificaExistncia .........................................................................37 Trabalhando com componentes Swing .......................................................................................39 Configurando a Classe Principal do Projeto.................................................................................41 Manipulando Componentes Swing (bsico)................................................................................44 JTextField .................................................................................................................................44 JComboBox ..............................................................................................................................45 JTable .......................................................................................................................................47 Codificando a Parte Visual do Sistema de Vendas ......................................................................50 Tela Principal do Sistema.........................................................................................................50 Telas de Consultas ...................................................................................................................51 Tela de Consulta de Clientes................................................................................................51 Tela de Consulta de Produtos..............................................................................................51 Tela de Consulta de Vendas.................................................................................................52 Telas de Cadastro e Alterao .................................................................................................53 Tela de Cadastro e Alterao de Cliente..............................................................................53 Tela de Cadastro e Alterao de Produto............................................................................54 Tela de Cadastro de Venda..................................................................................................55 Cdigo fonte das telas .................................................................................................................57 Mtodos auxiliares ..................................................................................................................57 Centralizar frame .................................................................................................................57 Tela principal ...........................................................................................................................57 Telas do Cliente .......................................................................................................................58 Consulta de Clientes ............................................................................................................58 Cadastro de Clientes............................................................................................................58 Alterao de Cliente ............................................................................................................59
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
Figura 27 - Mtodo remover Cliente ...........................................................................................29 Figura 28 - Mtodo atualizar Cliente ...........................................................................................30 Figura 29 - Estrutura da classe RepositrioProduto ....................................................................31 Figura 30 - Mtodos listarTodos, obterInstancia e construtor do RepositrioProduto..............32 Figura 31 - Mtodo inserir produto.............................................................................................32 Figura 32 - Mtodo remover produto .........................................................................................33 Figura 33 - Mtodo atualizar produto .........................................................................................33 Figura 34 - Mtodo verifica existncia produto ..........................................................................34 Figura 35 - Estrutura da classe RepositrioVenda.......................................................................35 Figura 36 - Construtor e mtodos listar todos e obterIntancia...................................................36 Figura 37 - Mtodo inserir venda ................................................................................................36 Figura 38 - Mtodo remover venda.............................................................................................37 Figura 39 - Mtodo atualizar venda ............................................................................................37 Figura 40 - Mtodo verifica existncia venda..............................................................................38 Figura 41 - Tela principal do Sistema de Vendas .........................................................................50 Figura 42 - Tela de Consulta de Clientes......................................................................................51 Figura 43 - Tela de Consulta de Produtos....................................................................................52 Figura 44 - Tela de Consulta de Vendas.......................................................................................53 Figura 45 - Tela de Cadastro de Cliente.......................................................................................54 Figura 46 - Tela de Alterao de Cliente......................................................................................54 Figura 47 - Tela de Cadastro de Produto .....................................................................................55 Figura 48 - Tela de Alterao de Produto....................................................................................55 Figura 49 - Tela de Cadastro de Venda........................................................................................56 Figura 50 - Mtodo centralizar frame..........................................................................................57 Figura 51 - Cdigo Fonte tela principal........................................................................................57 Figura 52 - Cdigo fonte tela consulta de clientes ......................................................................58 Figura 53 - Cdigo fonte tela novo cliente ..................................................................................59
Figura 54 - Cdigo fonte tela alterar cliente................................................................................59 Figura 55 - Cdigo fonte tela consulta de produtos ....................................................................60 Figura 56 - Cdigo fonte tela novo produto ................................................................................60 Figura 57 - Cdigo fonte tela alterar produto .............................................................................61 Figura 58 - Cdigo fonte tela consulta de vendas 1....................................................................62 Figura 59 - Cdigo fonte tela consulta de vendas 2 ....................................................................62 Figura 60 - Cdigo fonte tela cadastro de vendas 1 ....................................................................63 Figura 61 - Cdigo fonte tela cadastro de vendas 2 ....................................................................63 Figura 62 - Cdigo fonte tela cadastro de vendas 3 ....................................................................63 Figura 63 - Cdigo fonte tela cadastro de vendas 4 ....................................................................64 Figura 64 - Configurando a conexo com o banco de dados - 1..................................................66 Figura 65 - Configurando a conexo com o banco de dados - 2.................................................67 Figura 66 - Configurando a conexo com o banco de dados - 3..................................................67 Figura 67 - Configurando a conexo com o banco de dados - 4..................................................68 Figura 68 - Classe de Conexo com o banco de dados................................................................69 Figura 69 - Estrutura da classe RepositorioClienteOdbc .............................................................70 Figura 70 - Mtodo remover do RepositorioClienteOdbc...........................................................71 Figura 71 - Mtodo inserir do RepositorioClienteOdbc ..............................................................72 Figura 72 - Mtodo atualizar do RepositorioClienteOdbc...........................................................73 Figura 73 - Mtodo listarTodos do RepositorioClienteOdbc.......................................................74 Figura 74 - Mudana na GUI para utilizar banco de dados..........................................................75
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 de Pernambuco.
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
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.
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 computador Baixar o NetBeans do site www.netbeans.org. Aps baixar o NetBeans, efetue sua instalao.
Aparecer tela de Escolha do tipo de projeto, iremos escolher a categoria Java e o projeto Aplicativo Java. Aps selecionar as opes ditas anteriormente clique no boto Prximo. Conforme mostra a Figura 3.
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.
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
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 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.
Como podemos observar na Figura acima as classes de repositrios tm os seguintes mtodos: Inserir utilizado para inserir um determinado objeto no dispositivo de armazenamento. remover utilizado para remover um determinado objeto, no qual este objeto deve estar previamente cadastrado no dispositivo de armazenamento. atualizar utilizado para atualizar os valores contidos em um objeto previamente cadastrado no dispositivo de armazenamento. verifica existncia utilizado para verificar se as informaes de um determinado 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 no dispositivo 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.
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.
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.
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.
Codificaremos os atributos da classe Cliente, estes atributos foram definidos no diagrama de classe, neste caso os atributos nome e cpf, ambos do tipo String.
Professor Hildeberto Melo - 2011
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 ilustra figura abaixo.
Aparecer a tela de configurao dos gets e sets correspondentes ao referidos atributos da classe. Clicar no boto Selecionar tudo, em seguida clicar no boto Refatorar
Seguindo as etapas citadas acima, foi gerado automaticamente os gets e sets conforme ilustra a figura abaixo.
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.
Depois de codificar os atributos referentes ao Produto e gerar os gets e sets, a classe Produto ficar assim.
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.
Foi necessrio codificar um construtor para a classe ItemVenda, no construtor ser instanciado automaticamente o atributo Produto, isto se faz necessrio para evitar possveis erros no manuseio do ItemVenda.
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.
Foi necessrio codificar um construtor para a classe Venda, no construtor ser instanciado automaticamente o atributo itensDaVenda (do tipo ArrayList<ItemVenda>) e atributo cliente, isto se faz necessrio para evitar possveis erros no manuseio da Venda. A classe Venda possui um mtodo responsvel por calcular o total geral da Venda. A lgica utilizada foi percorrer todos os itens pertencentes Venda e acumular o clculo da (quantidade * preo) de cada item.
Sero codificadas trs classes de repositrios, RepositorioCliente, RepositorioProduto e RepositorioVenda. Cada classe corresponder aos clientes, produtos e vendas com seus respectivos 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 de armazenamento. remover utilizado para remover um determinado objeto, no qual este objeto deve estar previamente cadastrado no dispositivo de armazenamento. atualizar utilizado para atualizar os valores contidos em um objeto previamente cadastrado no dispositivo de armazenamento. verifica existncia utilizado para verificar se as informaes de um determinado 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 no dispositivo 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<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.
Aparecer uma tela para configurao do JFrame, com as informaes do nome da classe, localizao e pacote. Figura 42.
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.
Aparecer a tela de propriedades do projeto, onde poderemos personalizar nossa aplicao. Figura 45.
Para escolher a Classe principal do projeto iremos escolher a opo Executar (lado esquerdo da tela), Ao clicar na opo Executar aparecer a opes de escolha da Classe principal (centro da tela). Clicar no boto Procurar. Figura 46.
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.
Foi colocado no formulrio dois JTextField e 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 JTextField do nome 2 para o JTextField do nome. Figura 48.
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.
O mtodo getSelectedIndex() retorna o ndice (valor inteiro) do item escolhido do JComboBox, O mtodo getSelecedItem() retorna um Objeto que representa o item do JComboBox escolhido. A Figura 51 mostra o cdigo-fonte correspondente ao clique de cada boto para manipular o JComboBox.
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
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.
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 sobre nome, e sero colocados 10 linhas na JTable.
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 JTable preenchido com duas colunas e dez linhas.
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.
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.
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 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.
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.
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.
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.
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.
A 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.
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
O mtodo carregarCombos() servir para listar os produtos e clientes cadastrados em seus 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.
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.