terça-feira, 19 de dezembro de 2017

3º Passo - Criar Tela Principal - NetBeans JAVA - XAMPP MySQL

Sistema para Controle de Pedidos de Fast Foods.



Curta ✔ Comente ✔ Compartilhe ✔ Inscreva-se ✔
Material de apoio/Certificado: http://aulaead.com/course/curso-de-java/
Aprenda Java e MySQL de forma prática e descontraída desenvolvendo um Sistema de Controle de Pedidos para Fest Foods " Lanchonetes, Pizzarias, Pastelarias e afins..."
Este Sistema fornece uma base sólida da linguagem de programação Java e do banco de dados MySQL.
Blog:https://programacaoorientadaaobjeto.b...
Facebook: https://www.facebook.com/claytonklen
Google+: https://plus.google.com/+ClaytonKlen
Linkedin: https://www.linkedin.com/in/clayton-k...

Aluno do 6º Periodo do Curso de Analise e Desenvolvimento de Sistemas da Fatec " Arthur de Azevedo" - Mogi Mirim - São Paulo
http://www.fatecmm.edu.br/

Este Sistema de Controle de Pedidos de Fast Foods foi desenvolvido na Ide NetBeans:
Download NetBeans: https://netbeans.org/downloads/

Para o Desenvolvimento do Banco de Dados MySql utilizado o Workbench:

O Sistema Gerenciador de Banco de Dados o XAMPP Control Panel:

A Ferramenta de Desenvolvimento de Relatórios foi utilizado o Jaspersoft Studio:

Aconselho que assistam as vídeo-aulas abaixo.
Segue o Link da vídeo aula 9 a 12 do Professor José de Assis, para maior entendimento sobre a IDE NetBeans, onde ele explica boas práticas, convenção de programação para criar a Classe Tela Principal

Java-MySql Sistema OS  Tela Principal :
Aula 9:                 https://youtu.be/d_XLdYHm0A0
Aula 10:                https://youtu.be/tssvH7u4Fcc
Aula 11:            https://youtu.be/wbmqN-7aHOs
Aula 12:           https://youtu.be/C2LK4CWnFiI

ATENÇÃO !!! ANTES DE DAR INICIO NA IDE NETBEANS CRIAR O BANCO DE DADOS

3º Passo Tela Principal na IDE NetBeans





Na IDE NetBeans Criar Classe Tela Principal  :



package br.com.lanchonete.telas;

import br.com.lanchonete.dal.ModuloConexao;
import java.awt.Color;
//linhas abaixo importa biblotecas referentes altreção Backgraund do jDesktopPane

import java.awt.image.BufferedImage;
import java.io.InputStream;

import java.text.DateFormat;
import java.util.Date;
import javax.swing.JOptionPane;
import java.sql.*;
import java.text.DecimalFormat;
import java.util.HashMap;
import javax.imageio.ImageIO;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
// a linha abaixo importa recurso da biblioteca para busca por nome rs2xml.jar
import net.proteanit.sql.DbUtils;

/**
 *
 * @author 0o9iuygtfrdesaq
 */
public class TelaPrincipal extends javax.swing.JFrame {

    public InputStream foto = this.getClass().getResourceAsStream("/imagens/fast-foods.jpg");
    public InputStream foto1 = this.getClass().getResourceAsStream("/imagens/fast-foods1.jpg");
    public InputStream foto2 = this.getClass().getResourceAsStream("/imagens/fast-foods2.jpg");
    public InputStream foto3 = this.getClass().getResourceAsStream("/imagens/fast-foods3.jpg");
    public InputStream foto4 = this.getClass().getResourceAsStream("/imagens/fast-foods4.jpg");
    /*
   usando variável de conexao DAL
     */
    Connection conexao = null;
    /*
    Criando variáveis especiais para conexao com o banco de dados
    Prepared Statement e ResultSet são framewoks do pacote java.sql
    servem oara preparar e executar as indtruções SQL
     */
    PreparedStatement pst = null;
    ResultSet rs = null;

    /**
     * Creates new form TelaPrincipal
     */
    public TelaPrincipal() {
        // adicionar cor no Jframe
        this.getContentPane().setBackground(Color.LIGHT_GRAY); 
        this.setVisible(true);
     
        initComponents();
        conexao = ModuloConexao.conector();
        txtDinheiro.setText("0.00");
        txtTroco.setText("0.00");
    }

    // metodo para inserir imagem backgruond
    public void carregarImagem(javax.swing.JDesktopPane jDeskp, InputStream fileImagen) {
        try {
            BufferedImage image = ImageIO.read(fileImagen);
            jDeskp.setBorder(new background(image));
        } catch (Exception e) {
            System.out.println("Imagem não Disponível");
        }
    }

    // metodo para pesquisar clientes pelo nome com filtro
    private void pesquisar_pedido_venda_nome() {
        String sql = "select tbvenda.idvenda as Pedido, tbvenda.nomecli as Cliente, tbvenda.situacao as Status, tbvenda.tipo as Tipo, tbvenda.totalvenda as Valor, tbvenda.mesa as Mesa from tbvenda \n"
                + "where  tbvenda.situacao <> 'Finalizado' and tbvenda.nomecli like ? ";
        try {
            pst = conexao.prepareStatement(sql);
            //passando o conteúdo da caixa de pesquisa para o " ? "
            //atenção ao " % " - continuação da String sql
            pst.setString(1, txtPedidoPesquisarNome.getText() + "%");
            rs = pst.executeQuery();
            //a linha abaixo usa a biblioteca rs2xml.jar para preencher a tabela
            tblPedidoVenda.setModel(DbUtils.resultSetToTableModel(rs));

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
        tblPedidoVenda.setVisible(true);
    }

 
    // metodo para pesquisar clientes pelo nome com filtro
    private void pesquisar_pedido_venda_mesa() {
        String sql = "select tbvenda.idvenda as Pedido, tbvenda.nomecli as Cliente, tbvenda.situacao as Status, tbvenda.tipo as Tipo, tbvenda.totalvenda as Valor, tbvenda.mesa as Mesa from tbvenda \n"
                + "where  tbvenda.situacao <> 'Finalizado' and tbvenda.mesa like ? ";
        try {
            pst = conexao.prepareStatement(sql);
            //passando o conteúdo da caixa de pesquisa para o " ? "
            //atenção ao " % " - continuação da String sql
            pst.setString(1, txtPedidoPesquisarMesa.getText() + "%");
            rs = pst.executeQuery();
            //a linha abaixo usa a biblioteca rs2xml.jar para preencher a tabela
            tblPedidoVenda.setModel(DbUtils.resultSetToTableModel(rs));

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);

        }
        tblPedidoVenda.setVisible(true);
    }
 
    // metodo para setar os campos do formulário venda com os conteudos da tabela
    public void setar_campos_venda() {
        int setar = tblPedidoVenda.getSelectedRow();
        txtIdVenda.setText(tblPedidoVenda.getModel().getValueAt(setar, 0).toString());
        txtNomeCli.setText(tblPedidoVenda.getModel().getValueAt(setar, 1).toString());
        txtSituacao.setText(tblPedidoVenda.getModel().getValueAt(setar, 2).toString());
        txtTipo.setText(tblPedidoVenda.getModel().getValueAt(setar, 3).toString());
        txtTotalVenda.setText(tblPedidoVenda.getModel().getValueAt(setar, 4).toString());
        txtMesa.setText(tblPedidoVenda.getModel().getValueAt(setar, 5).toString());
        // Chamar metodo Contar Tipo pedio
        contar_tipo_pedido();
        tblPedidoVenda.setVisible(false);
    }

    // metodo para somar os itens pedido
    private void troco() {
        double totalVenda;
        double dinheiro;
        double troco;
        // Linhas abaixo pega valores dos valores Jtextfield
        totalVenda = Double.parseDouble(txtTotalVenda.getText().replace(",", "."));
        dinheiro = Double.parseDouble(txtDinheiro.getText().replace(",", "."));
        // Calcula o troco
        troco = (dinheiro - totalVenda);
        // Converter Double em 2 casas decimais
        DecimalFormat df = new DecimalFormat("###.00");
        // Retorna os valores calculados.
        txtTroco.setText(df.format(troco).replace(",", "."));
    }
 
      // metodo finalizar Pedido
    private void finalizar_pedido() {
        String sql = "update tbvenda set nomecli=?, situacao= 'Finalizado' where idvenda=?  ";
        try {
            pst = conexao.prepareStatement(sql);
            pst.setString(1, txtNomeCli.getText());
            pst.setString(2, txtIdVenda.getText());
            if (txtIdVenda.getText().isEmpty()) {
                JOptionPane.showMessageDialog(null, "Pedido A Ser Finalizado ?");

            } else {
                // a linha abaixo atualiza a tabela de lanches com os dados do Formulário
                txtSituacao.setText("Finalizado");
                // a estrutura abaixo é usada para confirmar a inserção de dados na tabela
                int adicionado = pst.executeUpdate();
                // a linha abaixo serve como entendimento da logica.

                //System.out.println(adicionado);
                if (adicionado > 0) {
                    JOptionPane.showMessageDialog(null, "Pedido Finalizado com Sucesso !!!");
                }
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
        tblPedidoVenda.setVisible(false);
        txtPedidoPesquisarNome.setText(null);
    }

    public void contar_tipo_pedido() {
        int cont = 0;
        int contbalcao = 0;
        int contdelivery = 0;
        int contmesa = 0;
        for (int i = 0; i < tblPedidoVenda.getRowCount(); i++) {
            if (tblPedidoVenda.getValueAt(i, 3).toString().equals("Balcao")) {
                contbalcao++;
            } else {
                if (tblPedidoVenda.getValueAt(i, 3).toString().equals("Delivery")) {
                    contdelivery++;
                } else {
                    if (tblPedidoVenda.getValueAt(i, 3).toString().equals("Mesa")) {
                        contmesa++;
                    }
                }
            }
            cont++;
        }
        // atribuir valor as label com soma dos tipos de copra
        lblStatus.setText(Integer.toString(cont));
        lblBalcao.setText(Integer.toString(contbalcao));
        lblDelivery.setText(Integer.toString(contdelivery));
        lblMesa1.setText(Integer.toString(contmesa));
    }

    // metodo para imprimir pedido
    private void imprimir_pedido() {
        // imprimrido um pedido
        int confirma = JOptionPane.showConfirmDialog(null, "Confirma a Impressão deste Pedido ?", "Atenção !!!", JOptionPane.YES_NO_OPTION);
        if (confirma == JOptionPane.YES_OPTION) {
            // Emitindo o relatório com o Jaspersoft Studio
            try {
                // usando a classe HashMap para criar um filtro
                HashMap filtro = new HashMap();
                filtro.put("NumeroPedido", Integer.parseInt(txtIdVenda.getText()));
                // usando a classe JasperPrint para preparar a impressão do relatório
                JasperPrint print = JasperFillManager.fillReport("C:/reports/MyReports/Pedido.jasper", filtro, conexao);
                // a linha abaixo apresenta o relatótio através do JasperViewr
                JasperViewer.viewReport(print, false);
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e);
            }
        }
    }

    // metodo para imprimir pedido
    private void imprimir_pedido_Delivery() {
        // imprimrido um pedido
        int confirma = JOptionPane.showConfirmDialog(null, "Confirma a Impressão deste Pedido ?", "Atenção !!!", JOptionPane.YES_NO_OPTION);
        if (confirma == JOptionPane.YES_OPTION) {
            // Emitindo o relatório com o Jaspersoft Studio
            try {
                // usando a classe HashMap para criar um filtro
                HashMap filtro = new HashMap();
                filtro.put("NumPedido", Integer.parseInt(txtIdVenda.getText()));
                // usando a classe JasperPrint para preparar a impressão do relatório
                JasperPrint print = JasperFillManager.fillReport("C:/reports/MyReports/Delivery.jasper", filtro, conexao);
                // a linha abaixo apresenta o relatótio através do JasperViewr
                JasperViewer.viewReport(print, false);
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Atenção Opção Válida Para Delivery ");
            }
        }

    }


OBS: Linhas abaixo correspondem aos eventos :


 private void formWindowActivated(java.awt.event.WindowEvent evt) {                                     
        /* as linhas abaixo substituem a label lblData pela data atual do
        sistema ao iniciar o form
         */
        Date data = new Date();
        DateFormat formatador = DateFormat.getDateInstance(DateFormat.SHORT);
        lblData.setText(formatador.format(data));
    }                                    

    private void MenOpcSaiActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // exibe uma caixa de diálogo
        int sair = JOptionPane.showConfirmDialog(null, "Tem certeza que deseja sair ?", "Atenção !!!", JOptionPane.YES_NO_OPTION);
        if (sair == JOptionPane.YES_OPTION) {
            System.exit(0);
    }                                         
    }
    private void MenAjuSobActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // chamando a tela sobre
        TelaSobre sobre = new TelaSobre();
        sobre.setVisible(true);
    }                                         

    private void MenCadUsuActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // As linhas abaixo abre o form tela usuario dentro do Desktop pane
        TelaUsuario usuario = new TelaUsuario();
        usuario.setVisible(true);
        desktop.add(usuario);
    }                                         

    private void MenCadCliActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // Chamando a Tela Cliente
        TelaCliente cliente = new TelaCliente();
        cliente.setVisible(true);
        desktop.add(cliente);
    }                                         

    private void MenCadFuncActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // Chamando a Tela Funcionario
        TelaFuncionario funcionario = new TelaFuncionario();
        funcionario.setVisible(true);
        desktop.add(funcionario);
    }                                          

    private void MenCadLancheActionPerformed(java.awt.event.ActionEvent evt) {                                             
        // Chamando a classe Lanche
        TelaLanche lanche = new TelaLanche();
        lanche.setVisible(true);
        desktop.add(lanche);
    }                                            

    private void MenCadBebidaActionPerformed(java.awt.event.ActionEvent evt) {                                             
        // Chamando a classe Bebida
        TelaBebida bebida = new TelaBebida();
        bebida.setVisible(true);
        desktop.add(bebida);
    }                                            

    private void menRelCliActionPerformed(java.awt.event.ActionEvent evt) {                                          
        //Gerando um Relatório de Clientes
        int confirma = JOptionPane.showConfirmDialog(null, "Confirma a Impressão deste Relatório ?", "Atenção", JOptionPane.YES_NO_OPTION);
        if (confirma == JOptionPane.YES_OPTION) {
            // imprimindo Relatório de Clientes com o framework JasperStudio
            try {
                // Usando a classe JasperPrint para preparar a impressão do relatório
                JasperPrint print = JasperFillManager.fillReport("C:/reports/MyReports/ClientesLanchonete.jasper", null, conexao);
                // A linha abaixo exibe o relatório Cliente através da classe JasperViewer
                JasperViewer.viewReport(print, false);

            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e);
            }
        }
    }                                         

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //Botão Chamando a Tela Cliente
        TelaCliente cliente = new TelaCliente();
        cliente.setVisible(true);
        desktop.add(cliente);
    }                                        

    // evento que será usado para setar os campos da tabela " clicando com o mause "
    private void tblPedidoVendaMouseClicked(java.awt.event.MouseEvent evt) {                                            
        // chamando o metodo setar campos da venda
        setar_campos_venda();
        tblPedidoVenda.setVisible(false);
    }                                           

    private void btnFinalizarActionPerformed(java.awt.event.ActionEvent evt) {                                             
        // chamar metodo Finalizar Pedido ... setar campo situação " Finalizado"
        finalizar_pedido();
// Limpar campos do Formulário
        txtIdVenda.setText(null);
        txtNomeCli.setText(null);
        txtTipo.setText(null);
        txtSituacao.setText(null);
        txtTotalVenda.setText("0.00");
        txtMesa.setText("0");
        txtTroco.setText("0.00");
        txtDinheiro.setText("0.00");
        tblPedidoVenda.setVisible(false);
        txtPedidoPesquisarNome.setText(null);
        JOptionPane.showMessageDialog(null, "Formulário Limpo !!!");
    }                                            

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // chamar metodo calcular Troco
        troco();
    }                                        

    private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // chamando o metodo imprimir pedido
        imprimir_pedido();
    }                                           

    private void btnLimparCamposActionPerformed(java.awt.event.ActionEvent evt) {                                                
        // as linhas abaixo limpam os campos
        txtIdVenda.setText(null);
        txtNomeCli.setText(null);
        txtTipo.setText(null);
        txtSituacao.setText(null);
        txtTotalVenda.setText("0.00");
        txtMesa.setText("0");
        txtDinheiro.setText("0.00");
        txtTroco.setText("0.00");
        tblPedidoVenda.setVisible(true);
        // Limpar campos do Formulário
        JOptionPane.showMessageDialog(null, "Formulário Limpo !!!");
    }                                               

    private void txtPedidoPesquisarNomeActionPerformed(java.awt.event.ActionEvent evt) {                                                       
        //Chamar o metodo pesquisar Pedido Mesa
        pesquisar_pedido_venda_mesa();
    }                                                      

    private void txtPedidoPesquisarNomeKeyReleased(java.awt.event.KeyEvent evt) {                                                   
        //Chamar o metodo pesquisar Pedido cliente por Nome
        pesquisar_pedido_venda_nome();
    }                                                  

    private void btnFundo1ActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // Carregar Imagem de Fundo 1
        carregarImagem(desktop, foto);
    }                                         

    private void btnFundo2ActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // Carregar Imagem de Fundo 2
        carregarImagem(desktop, foto1);
    }                                         

    private void btnFundo3ActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // Carregar Imagem de Fundo 3
        carregarImagem(desktop, foto2);
    }                                         

    private void btnFundo4ActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // Carregar Imagem de Fundo 4
        carregarImagem(desktop, foto3);
    }                                         

    private void btnFundo5ActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // Carregar Imagem de Fundo 5
        carregarImagem(desktop, foto4);
    }                                         

    private void MenCadPedBalcaoActionPerformed(java.awt.event.ActionEvent evt) {                                                
        // Chamando a classe Pedido Balcao
        PedidosBalcao pedido = new PedidosBalcao();
        pedido.setVisible(true);
        desktop.add(pedido);
        // Apagar os Campos com valores 
        txtTotalVenda.setText("0.00");
        txtTroco.setText("0.00");
        txtDinheiro.setText("0.00");
    }                                               

    private void MenCadPedMesaActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // Chamando a classe Pedido Mesa
        PedidoMesa pedido = new PedidoMesa();
        pedido.setVisible(true);
        desktop.add(pedido);
        // Apagar os Campos com valores 
        txtTotalVenda.setText("0.00");
        txtTroco.setText("0.00");
        txtDinheiro.setText("0.00");
    }                                             

    private void MenCadPedDeliveryActionPerformed(java.awt.event.ActionEvent evt) {                                                  
        // Chamando a classe Pedido Delivery
        PedidoDelivery pedido = new PedidoDelivery();
        pedido.setVisible(true);
        desktop.add(pedido);
        // Apagar os Campos com valores 
        txtTotalVenda.setText("0.00");
        txtTroco.setText("0.00");
        txtDinheiro.setText("0.00");

    }                                                 

    private void btnMesaActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // Chamando a classe Pedido Mesa
        PedidoMesa pedido = new PedidoMesa();
        pedido.setVisible(true);
        desktop.add(pedido);
        // Apagar os Campos com valores 
        txtTotalVenda.setText("0.00");
        txtTroco.setText("0.00");
        txtDinheiro.setText("0.00");
    }                                       

    private void btnDeliveryActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // Chamando a classe Pedido Delivery
        PedidoDelivery pedido = new PedidoDelivery();
        pedido.setVisible(true);
        desktop.add(pedido);
        // Apagar os Campos com valores 
        txtTotalVenda.setText("0.00");
        txtTroco.setText("0.00");
        txtDinheiro.setText("0.00");
    }                                           

    private void btnBalcaoActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // Chamando a classe Pedido Balcao
        PedidosBalcao pedido = new PedidosBalcao();
        pedido.setVisible(true);
        desktop.add(pedido);
        // Apagar os Campos com valores 
        txtTotalVenda.setText("0.00");
        txtTroco.setText("0.00");
        txtDinheiro.setText("0.00");
    }                                         

    private void btnImprimirDeliveryActionPerformed(java.awt.event.ActionEvent evt) {                                                    
        //Chamar Metodo Imprimir delivery
        imprimir_pedido_Delivery();
    }                                                   

    private void txtPedidoPesquisarMesaKeyReleased(java.awt.event.KeyEvent evt) {                                                   
       //Chamar o metodo pesquisar Pedido cliente por Nome
        pesquisar_pedido_venda_mesa();
    }                                                  


Nenhum comentário:

Postar um comentário