Olá!
Fiz recentemente um programinha para gerar código de barras (Interleaved 2 of 5) e estou disponibilizando para quem se interessar!
Mas… Eu nunca testei se está funcionando com o leitor ok? Caso alguém que tenha o leitor puder testar e postar aqui avisando eu agradeço. Mais uma coisinha… Não tem impressão! Então dê um Print Screen e cola no Paint mesmo, sei lá… Aí imprime por ele.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class codigoDeBarras {
public static void main( String args[] ) {
new codigoDeBarras();
}
private JFrame janela;
private JPanel controle, painel, lab;
private JSplitPane split;
private JTextField txt_codigo;
private JButton bt_gerar;
//-----------------------------------
private String codigo = "", codigoCompleto[];
private int tamanho = 0;
private boolean paridade = false;
public codigoDeBarras() {
janela = new JFrame( "..:: Gerador de Código de Barras - I25 ::.." );
janela.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
janela.setLayout( new BorderLayout() );
controle = new JPanel();
controle.setBackground( Color.white );
painel = new JPanel();
painel.setBackground( Color.white );
painel.setLayout( new FlowLayout( FlowLayout.CENTER, 0, 10 ) );
painel.add( new JLabel( new ImageIcon( "imagens/BF.jpg" ) ) );
txt_codigo = new JTextField(20);
txt_codigo.setFont( new Font( "Times New Roman", 0, 18 ) );
bt_gerar = new JButton( "Gerar" );
controle.add( txt_codigo );
controle.add( bt_gerar );
split = new JSplitPane( JSplitPane.VERTICAL_SPLIT, controle, painel );
split.setOneTouchExpandable( false );
//-------------------------------------------------------------------------------------------------------------
bt_gerar.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e ) {
gerarBarras();
}
} );
//-------------------------------------------------------------------------------------------------------------
janela.getContentPane().add( split, BorderLayout.CENTER );
janela.setVisible( true );
janela.pack();
janela.setLocationRelativeTo( null );
janela.setResizable( false );
}
private void gerarBarras() {
painel.removeAll();
codigo = txt_codigo.getText();
tamanho = codigo.length();
int decremento = 0;
paridade = verificarTamanho( tamanho );
if( paridade == false ) JOptionPane.showMessageDialog( janela, "Digite uma quantidade par de números!", "Erro!", JOptionPane.ERROR_MESSAGE );
else
if( paridade == true ) {
String par = "";
int contador, aux, pcodigo;
codigoCompleto = new String[ tamanho*5 ];
for( contador=0; contador<tamanho*5; contador++ ) codigoCompleto[ contador ] = "2";
for( contador=0; contador<tamanho*5; contador+=10 ) {
if( codigo.substring( decremento, decremento+1 ).equals( "0" ) ) {
aux = contador;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
}
}
if( codigo.substring( decremento+1, decremento+2 ).equals( "0" ) ) {
aux = contador+1;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
}
}
if( codigo.substring( decremento, decremento+1 ).equals( "1" ) ) {
aux = contador;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
}
}
if( codigo.substring( decremento+1, decremento+2 ).equals( "1" ) ) {
aux = contador+1;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
}
}
if( codigo.substring( decremento, decremento+1 ).equals( "2" ) ) {
aux = contador;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
}
}
if( codigo.substring( decremento+1, decremento+2 ).equals( "2" ) ) {
aux = contador+1;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
}
}
if( codigo.substring( decremento, decremento+1 ).equals( "3" ) ) {
aux = contador;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "1";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
}
}
if( codigo.substring( decremento+1, decremento+2 ).equals( "3" ) ) {
aux = contador+1;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "1";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
}
}
if( codigo.substring( decremento, decremento+1 ).equals( "4" ) ) {
aux = contador;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
}
}
if( codigo.substring( decremento+1, decremento+2 ).equals( "4" ) ) {
aux = contador+1;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
}
}
if( codigo.substring( decremento, decremento+1 ).equals( "5" ) ) {
aux = contador;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
}
}
if( codigo.substring( decremento+1, decremento+2 ).equals( "5" ) ) {
aux = contador+1;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
}
}
if( codigo.substring( decremento, decremento+1 ).equals( "6" ) ) {
aux = contador;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
}
}
if( codigo.substring( decremento+1, decremento+2 ).equals( "6" ) ) {
aux = contador+1;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
}
}
if( codigo.substring( decremento, decremento+1 ).equals( "7" ) ) {
aux = contador;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "1";
}
}
if( codigo.substring( decremento+1, decremento+2 ).equals( "7" ) ) {
aux = contador+1;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "1";
}
}
if( codigo.substring( decremento, decremento+1 ).equals( "8" ) ) {
aux = contador;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
}
}
if( codigo.substring( decremento+1, decremento+2 ).equals( "8" ) ) {
aux = contador+1;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
}
}
if( codigo.substring( decremento, decremento+1 ).equals( "9" ) ) {
aux = contador;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
}
}
if( codigo.substring( decremento+1, decremento+2 ).equals( "9" ) ) {
aux = contador+1;
if( codigoCompleto[ aux ].equals( "2" ) ) {
codigoCompleto[ aux ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
codigoCompleto[ aux+=2 ] = "1";
codigoCompleto[ aux+=2 ] = "0";
}
}
decremento+=2;
}
for( contador = 0; contador<tamanho*5; contador++ ) System.out.print( " "+codigoCompleto[contador] );
painel.removeAll();
painel.setVisible( false );
painel.setVisible( true );
for( contador=0; contador<tamanho*5; contador++ ) mostrarBarras( codigoCompleto[ contador ], contador );
lab = new JPanel();
lab.setBackground( Color.white );
lab.setLayout( new FlowLayout( FlowLayout.CENTER, 0, 0 ) );
JLabel label = new JLabel( codigo );
label.setHorizontalAlignment( SwingConstants.CENTER );
label.setVerticalAlignment( SwingConstants.TOP );
lab.add( label );
janela.add( lab, BorderLayout.SOUTH );
janela.show();
decremento=0;
}
}
private boolean verificarTamanho( int tamanho ) {
boolean b = false;
if( tamanho%2 == 0 ) b = true;
else
if( tamanho%2 != 0 ) b = false;
return b;
}
private void mostrarBarras( String s, int c ) {
if( c==0 ) {
painel.add( new JLabel( new ImageIcon( "imagens/Inicio.jpg" ) ) );
}
if( s.equals( "0" ) && c%2==0 ) painel.add( new JLabel( new ImageIcon( "imagens/PF.jpg" ) ) );
if( s.equals( "0" ) && c%2!=0 ) painel.add( new JLabel( new ImageIcon( "imagens/BF.jpg" ) ) );
if( s.equals( "1" ) && c%2==0 ) painel.add( new JLabel( new ImageIcon( "imagens/PL.jpg" ) ) );
if( s.equals( "1" ) && c%2!=0 ) painel.add( new JLabel( new ImageIcon( "imagens/BL.jpg" ) ) );
if( c==(tamanho*5)-1 ) {
painel.add( new JLabel( new ImageIcon( "imagens/Fim.jpg" ) ) );
janela.show();
}
}
}
onde você colocar seu arquivo com o código acima, crie uma pasta chamada imagens e insira as segintes imagens dentro da pasta:
Renomeie para Inicio.jpg

Renomeie para Fim.jpg

Renomeie para PF.jpg

Renomeie para PL.jpg

Renomeie para BF.jpg

Renomeie para BL.jpg
