Código de Barras para quem quiser!

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