Pular para o conteúdo principal

JNI e JNA


Fala galera! 
Após um tempo longe (bem longe para falar a verdade lá no congresso nacional), voltei aqui para mostrar-lhes o que na verdade é JNI e JNA e como utiliza-las para conectarmos uma impressora à nossa aplicação java!!! Vamos lá e bons códigos!
Diagrama JNI / JNA
Hoje, vamos ver o quando é fácil fazer um Cupom Fiscal no Java utilizando a camada JNA.
Primeiramente crie um novo projeto.
Agora baixe o driver JNA no site da daruma: http://www.desenvolvedoresdaruma.com.br
O conteúdo da pasta vem zipado, extraia estes arquivos.

Retorne ao Projeto Java, clique com o botão direito em Bibliotecas e em seguida clique em Adicionar JAR/pasta...
Selecione agora o conteúdo da pasta com o driver DarumaFramework.JAR,e clique em OK.
Pronto! Já esta importada a camada JNA DarumaFramework paraseu projeto.


Agora necessitamos importar a camada JNA de maneira quepossamos manipular suas funções através do código do projeto.
Em nosso caso iremos importar o pacote com os métodos uteis para todos osprodutos que é representado pela classe UTIL e os métodos das ImpressorasFiscais contidos na classe ECF.
Conforme abaixo:

Crie uma pequena interface gráfica em um formulário, semelhante ao exemploabaixo:
Agora na prática!


Verificando Porta e a Velocidade da Impressora 
1
2
3
4
5
private void mainPanelPropertyChange(java.beans.PropertyChangeEvent evt) {
        int iRetorno;
        iRetorno= ECF.eBuscarPortaVelocidade();
         
}


Abertura de Cupom Fiscal
1
2
3
4
5
private void cmd_abrirMouseClicked(java.awt.event.MouseEvent evt) {
   int iRetorno;
   iRetorno= ECF.iCFAbrirPadrao();
}
Registro de Item

1
2
3
4
5
6
7
8
9
10
11
private void cmd_venderMouseClicked(java.awt.event.MouseEvent evt) {
       int iRetorno;
       cmd_abrir.setEnabled(false);
       String aliquota, preco, codigo, descricao;
       aliquota= txt_aliquoata.getText();
       preco=txt_preco.getText();
       codigo=txt_cod.getText();
       descricao=txt_desc.getText();
        
       iRetorno= ECF.iCFVenderResumido(aliquota, preco, codigo, descricao);
}
Totalização do Cupom Fiscal
1
2
3
4
5
6
7
8
9
10
11
12
13
private void cmd_totalizarMouseClicked(java.awt.event.MouseEvent evt) {
  
        pnl_venda.setEnabled(false);
        cmd_vender.setEnabled(false);
        int iRetorno= ECF.iCFTotalizarCupomPadrao();
         
             if(iRetorno==1){
                   JOptionPane.showMessageDialog(null, "Cupom Fiscal Totalizado!");
                  }
            else
                   {
     JOptionPane.showMessageDialog(null, "Cupom Fiscal não Totalizado!");
                    }
Efetua Pagamento Padrão (Dinheiro)
1
2
3
4
private void cmd_pgtoMouseClicked(java.awt.event.MouseEvent evt) {
        cmd_totalizar.setEnabled(false);
        int iRetorno= ECF.iCFEfetuarPagamentoPadrao();
 }
Encerramento de Cupom Fiscal
1
2
3
4
private void cmd_finalizaMouseClicked(java.awt.event.MouseEvent evt) {
        cmd_pgto.setEnabled(false);
        int iRetorno= ECF.iCFEncerrarConfigMsg("Volte Sempre!");
    }  


É isso ai galera! Espero que mais uma vez tenha sido útil para vocês e que todos tenham desmitificado esta etapa da programação.
Abraços de seu amigo Bruno Rafael!

Comentários

  1. Boa noite Bruno, estou começando a trabalhar com o DarumaFramework.dll, embora esteja trabalhando com o eclipse, fiz os procedimentos que você indicou incluindo os 3 JARs nas minhas libs. Mas continua dando falha que não pode validar o link com o "DarumaFramework" no JNA, já tentei colocar as DLLs na pasta de src, na pasta do windows, na system32, junto com os jars da Daruma, já tentei renomear a DLL para ter o W minusculo, porque quando baixamos ela vem DarumaFrameWork.dll e nada funcinou. Tem alguma sugestão que possa me ajudar? Onde você colocou essas DLLs? rs O que eu fiz de errado?

    Ou teria como você me enviar a estrutura do teu projeto compilado? não sei se tem algum problema com a versão recente do site?

    Agradeço qualquer ajuda... Abraços

    ResponderExcluir
    Respostas
    1. Olá meu caro Rodrigo, para saber qual o problema que está acontecendo, mande o erro que ele deve estar causando para que eu possa analisa-lo. Aguardo

      Excluir
    2. Verifique este exemplo. Qualquer dúvida estamos à disposição:

      Baixar Exemplo

      Excluir

Postar um comentário

Postagens mais visitadas deste blog

Executar Audio em Java Swing

Uma das coisas que mais motivam nós programadores quando estamos aprendendo a programar ou que continuemos a estudar a linguagem a qual programamos é aprender sempre algo novo que a linguagem nos oferece. Claro que Java nos permite hoje fazer qualquer tipo de aplicação, porém o grande problema é que não sabemos como fazer o que queremos e a partir da aí buscamos cada vez mais o conhecimento que precisamos para fazer o que desejamos. Recentemente descobri essa biblioteca chamada JLayer a qual nos permite tocar de forma muito fácil arquivos MP3 em nossos programas Java. Eu ainda não estudei essa biblioteca profundamente para ver tudo o que ela tem, porém hoje eu mostro como fazer o básico para tocar arquivos MP3 usando a Jlayer. O tutorial é dividido em duas partes. A primeira parte (logo a seguir) ensina a tocar um arquivo mp3 em código Java de forma bem simples. Na segunda parte (que publicarei algum dia), ensinarei a tocar o arquivo mp3 usando threads e mostrando alguns outros recursos…

Algorítimo Para Validar Cpf Segundo Receita Federal em Java

Fala galera!
Abaixo posto para vocês um Algorítimo de validação de Cpf Segundo os moldes da Receita Feredal.
Att.
Bruno Rafael
/*  * To change this template, choose Tools | Templates  * and open the template in the editor.  */ package br.com.autoenem.padrao;
/**  *  * @author Bruno  */ public class ValidarCpf {
  /** Realiza a validação do CPF.       *       * @param   strCPF número de CPF a ser validado       * @return  true se o CPF é válido e false se não é válido       */     public static boolean  CPF(String cpf) {        String strCpf = cpf;         if (strCpf.equals("")) {             return false;         }          int d1, d2;         int digito1, digito2, resto;         int digitoCPF;         String nDigResult;
        d1 = d2 = 0;         digito1 = digito2 = resto = 0;
        for (int nCount = 1; nCount < strCpf.length() - 1; nCount++) {             digitoCPF = Integer.valueOf(strCpf.substring(nCount - 1, nCount)).intValue();
  //multiplique a ultima casa por 2 a seguinte…

JDK,JRE,JVM - Quais suas diferenças?

Vamos quebrar mais esta aqui para a galera! Afinal, qual a diferença?JDK (Java Development Kit)
Java Developer Kit contém ferramentas necessárias para desenvolver os programas em Java, e JRE para executar os programas.As ferramentas incluem compilador (javac.exe), lançador de aplicação Java (java.exe), appletviewer, etc ...
O Compilador converte o código Java em código de byte. O Java executa o aplicativo, abre um JRE, carrega a classe, e chama seu método principal.


Você precisa do JDK se você quer escrever seus próprios programas, e para compilar o m.Para execução de programas Java, o JRE é suficiente.
JRE é direcionada para a execução de arquivos Java ou seja, do JRE = Java JVM + Classes Pacotes (como util, matemática, lang, awt, etc swing) + de bibliotecas de tempo de execução. JDK é principalmente direcionada para desenvolvimento java.Ou seja, você pode criar um arquivo Java (com a ajuda de pacotes Java), compilar um arquivo Java e executar um arquivo java JRE (Java Runtime Environmen…