Decodificar codigo java, eu esotu tentando fazer umleitor de codigo de barras

Blz pessoal,

Eu gostaria de saber como eu organizer um codigo fonte que decodifiquei, nao estou conceguindo organizalo.

A quem pode me ajudar eu agradeço.

Segue o codigo fonte.

A quem poder me ajudar obrigado.

import b.a.a.b;
import a.a.o;
import java.awt.;
import java.awt.event.
;
import java.awt.image.RenderedImage;
import java.io.;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.
;
import java.util.concurrent.;
import javax.imageio.ImageIO;
import javax.swing.
;
import javax.swing.filechooser.FileFilter;

public class BarDemo extends JFrame
{
class e extends FileFilter
{

    public boolean accept(File file)
    {
        String s = file.getName().toLowerCase();
        if(s.equals("tasman.gif") || s.equals("tasmanbk.gif"))
            return false;
        if(file.isDirectory() || s.endsWith(".bmp") || s.endsWith(".wbmp") || s.endsWith(".jpg") || s.endsWith(".jpeg") || s.endsWith(".gif") || s.endsWith(".giff") || s.endsWith(".png"))
            return true;
        if(_fldnew != null && (s.endsWith(".tif") || s.endsWith(".tiff")))
            return true;
        return _fldtry != null && s.endsWith(".pdf");
    }

    public String getDescription()
    {
        if(_fldnew == null && _fldtry == null)
            return _fldint;
        if(_fldtry == null)
            return _fldfor;
        if(_fldnew == null)
            return _flddo;
        else
            return _fldif;
    }

    private String _fldint;
    private String _fldfor;
    private String _flddo;
    private String _fldif;
    private f _fldtry;
    private c _fldnew;
    final BarDemo a;

    e(c c1, f f)
    {
        a = BarDemo.this;
       // super();
        _fldint = ".bmp .gif .jpg .png .wbmp";
        _fldfor = ".bmp .gif .jpg .png .tif .wbmp";
        _flddo = ".bmp .gif .jpg .pdf .png .wbmp";
        _fldif = ".bmp .gif .jpg .pdf .png .tif .wbmp";
        _fldtry = f;
        _fldnew = c1;
    }
}

class g
    implements Runnable
{
    class a
        implements Callable
    {

        public Object call()
        {
            Object obj = null;
            try
            {
                obj = ImageIO.read(a);
            }
            catch(IOException ioexception) { }
            if(obj == null)
                obj = a(a);
            if(obj == null)
                return null;
            b b1 = new b(((RenderedImage) (obj)));
            a.a.aa aaa[] = b1.a(_fldif);
            synchronized(BarDemo._mthfor(_flddo.a))
            {
                g.a(_flddo).setTitle((new StringBuilder()).append(BarDemo.a()).append(a.getName()).toString());
                BarDemo._mthfor(_flddo.a).append((new StringBuilder()).append("\n").append(a.getName()).append("\n").toString());
                for(int i = 0; i < aaa.length; i++)
                    BarDemo._mthfor(_flddo.a).append((new StringBuilder()).append(aaa[i]).append("\n").toString());

            }
            synchronized(BarDemo.a(_flddo.a))
            {
                BarDemo.a(_flddo.a).a(((RenderedImage) (obj)));
                BarDemo.a(_flddo.a).a(aaa);
                BarDemo.a(_flddo.a).getParent().setBackground(Color.gray);
                BarDemo.a(_flddo.a).revalidate();
                BarDemo.a(_flddo.a).repaint();
            }
            return null;
        }

        private RenderedImage a(File file)
        {
            String s = file.getName();
            RenderedImage renderedimage = null;
            int i = s.lastIndexOf('.');
            String s1 = "";
            if(i != -1)
                s1 = s.substring(i + 1).toUpperCase();
            if(g._mthif(_flddo) != null && (s1.equals("TIF") || s1.equals("TIFF")))
                renderedimage = g._mthif(_flddo).readTiff(file, null);
            else
            if(g._mthdo(_flddo) != null && s1.equals("PDF"))
                renderedimage = g._mthdo(_flddo).readPDF(file, g.a(_flddo), null);
            return renderedimage;
        }

        private File a;
        private o _fldif;
        final g _flddo;

        a(File file, o o1)
        {
            _flddo = g.this;
            super();
            a = file;
            _fldif = o1;
        }
    }


    public void run()
    {
        Date date = new Date();
        int i = Runtime.getRuntime().availableProcessors();
        if(BarDemo._mthdo(a).q != null)
            i = Integer.valueOf(BarDemo._mthdo(a).q.getProperty("batchThreads", (new StringBuilder()).append("").append(i).toString())).intValue();
        ExecutorService executorservice = Executors.newFixedThreadPool(i);
        ArrayList arraylist = new ArrayList();
        File afile[] = _fldif;
        long l1 = afile.length;
        for(int j = 0; j < l1; j++)
        {
            File file = afile[j];
            if(!file.isDirectory())
                arraylist.add(new a(file, BarDemo._mthdo(a)));
        }

        try
        {
            executorservice.invokeAll(arraylist);
        }
        catch(Exception exception) { }
        Date date1 = new Date();
        l1 = date1.getTime() - date.getTime();
        BarDemo._mthfor(a).append((new StringBuilder()).append("Batch done in millisecs = ").append(l1).append("\n").toString());
        RenderedImage renderedimage = BarDemo.a(a).a();
        BarDemo.a(a, new a(renderedimage, BarDemo._mthfor(a)));
    }

    static JFrame a(g g1)
    {
        return g1._fldint;
    }

    static c _mthif(g g1)
    {
        return g1._flddo;
    }

    static f _mthdo(g g1)
    {
        return g1._fldfor;
    }

    private File _fldif[];
    private JFrame _fldint;
    private f _fldfor;
    private c _flddo;
    final BarDemo a;

    g(JFrame jframe, File afile[], c c1, f f)
    {
        a = BarDemo.this;
        super();
        _fldif = afile;
        _fldint = jframe;
        _fldfor = f;
        _flddo = c1;
    }
}

class d
    implements ActionListener, Runnable
{

    public void actionPerformed(ActionEvent actionevent)
    {
        a = _fldcase.getSelectedFiles();
        if(a.length > 1)
            _fldcase.setSelectedFile(a[a.length - 1]);
        int i = _fldcase.showOpenDialog(_fldif);
        if(i == 0)
        {
            a = _fldcase.getSelectedFiles();
            if(a.length == 1)
            {
                if(!a[0].exists())
                    return;
                _fldif.getContentPane().setCursor(Cursor.getPredefinedCursor(3));
                String s = a[0].getName();
                int j = s.lastIndexOf('.');
                String s1 = "";
                if(j != -1)
                    s1 = s.substring(j + 1).toUpperCase();
                if(_fldfor != null && (s1.equals("TIF") || s1.equals("TIFF")))
                    _fldtry = _fldfor.readTiff(a[0], _flddo);
                else
                if(_fldnew != null && s1.equals("PDF"))
                    _fldtry = _fldnew.readPDF(a[0], _fldif, _flddo);
                else
                    try
                    {
                        _fldtry = ImageIO.read(a[0]);
                    }
                    catch(Exception exception)
                    {
                        _fldtry = null;
                    }
                if(_fldtry == null)
                {
                    _fldif.getContentPane().setCursor(Cursor.getDefaultCursor());
                    return;
                }
                Thread thread1 = new Thread(this);
                thread1.start();
            } else
            {
                Thread thread = new Thread(_fldint. new g(_fldif, a, _fldfor, _fldnew));
                thread.start();
            }
        }
    }

    public void run()
    {
        if(_fldtry == null);
        _fldbyte.setEnabled(true);
        BarDemo.a(_fldint).a(_fldtry);
        BarDemo.a(_fldint).a(null);
        BarDemo.a(_fldint).getParent().setBackground(Color.gray);
        BarDemo.a(_fldint).revalidate();
        BarDemo.a(_fldint).repaint();
        _fldif.setTitle((new StringBuilder()).append(BarDemo.a()).append(_fldcase.getSelectedFile().getName()).toString());
        BarDemo.a(_fldint, new a(_fldtry, BarDemo._mthfor(_fldint)));
        _fldif.getContentPane().setCursor(Cursor.getDefaultCursor());
    }

    private JFrame _fldif;
    private File a[];
    private RenderedImage _fldtry;
    private JButton _fldbyte;
    private JFileChooser _fldcase;
    private c _fldfor;
    private f _fldnew;
    private d _flddo;
    final BarDemo _fldint;

    d(JFrame jframe, JButton jbutton)
    {
        _fldint = BarDemo.this;
        super();
        _fldif = jframe;
        _fldtry = null;
        _fldbyte = jbutton;
        try
        {
            Class.forName("javax.media.jai.JAI");
            Class.forName("com.sun.media.jai.codec.TIFFDecodeParam");
            URL aurl[] = new URL[1];
            aurl[0] = getClass().getResource("readme.html");
            URLClassLoader urlclassloader = new URLClassLoader(aurl);
            Class class1 = urlclassloader.loadClass("Tiffer");
            _fldfor = (c)class1.newInstance();
        }
        catch(ClassNotFoundException classnotfoundexception)
        {
            _fldfor = null;
        }
        catch(InstantiationException instantiationexception)
        {
            _fldfor = null;
        }
        catch(IllegalAccessException illegalaccessexception)
        {
            _fldfor = null;
        }
        try
        {
            Class.forName("com.adobe.acrobat.PDFDocument");
            Class.forName("com.adobe.acrobat.sidecar.FloatPoint");
            Class.forName("com.adobe.acrobat.sidecar.AffineTransform");
            URL aurl1[] = new URL[1];
            aurl1[0] = getClass().getResource("readme.html");
            URLClassLoader urlclassloader1 = new URLClassLoader(aurl1);
            Class class2 = urlclassloader1.loadClass("PDFer");
            _fldnew = (f)class2.newInstance();
        }
        catch(ClassNotFoundException classnotfoundexception1)
        {
            _fldnew = null;
        }
        catch(InstantiationException instantiationexception1)
        {
            _fldnew = null;
        }
        catch(IllegalAccessException illegalaccessexception1)
        {
            _fldnew = null;
        }
        _fldcase = new JFileChooser();
        _fldcase.setCurrentDirectory(new File(System.getProperties().getProperty("user.dir")));
        _fldcase.setMultiSelectionEnabled(true);
        _fldcase.setFileSelectionMode(2);
        e e1 = new e(_fldfor, _fldnew);
        _fldcase.setFileFilter(e1);
        _flddo = new d(jframe);
    }
}

class c
    implements ActionListener, Runnable
{

    public void actionPerformed(ActionEvent actionevent)
    {
        Thread thread = new Thread(this);
        thread.start();
    }

    public void run()
    {
        Date date = new Date();
        _fldif.setCursor(Cursor.getPredefinedCursor(3));
        a.a.aa aaa[];
        try
        {
            aaa = BarDemo._mthif(a).a(BarDemo._mthdo(a));
        }
        catch(IllegalArgumentException illegalargumentexception)
        {
            aaa = null;
            BarDemo._mthfor(a).append((new StringBuilder()).append(illegalargumentexception.getMessage()).append("\n").toString());
        }
        Date date1 = new Date();
        long l1 = date1.getTime() - date.getTime();
        date = date1;
        BarDemo._mthif(a)._mthdo();
        BarDemo._mthfor(a).append((new StringBuilder()).append("Done in millisecs = ").append(l1).append("\n").toString());
        _fldif.setCursor(Cursor.getDefaultCursor());
        BarDemo.a(a).a(aaa);
        BarDemo.a(a).repaint();
    }

    private Container _fldif;
    final BarDemo a;

    c(Container container)
    {
        a = BarDemo.this;
        super();
        _fldif = container;
    }
}


public static void main(String args[])
{
    b b1 = new b();
    b1.setVisible(true);
    b1.setCursor(Cursor.getPredefinedCursor(3));
    b1.repaint();
    RenderedImage renderedimage = b1.a();
    BarDemo bardemo = new BarDemo();
    bardemo._fldnew.a(renderedimage);
    bardemo.pack();
    bardemo.setVisible(true);
    bardemo._fldfor = new a(renderedimage, bardemo._fldint);
    b1.setVisible(false);
    b1.setCursor(Cursor.getDefaultCursor());
    b1.dispose();
    try
    {
        bardemo.a("readme.html");
        bardemo.a("bars.css");
        bardemo.a("tasman.gif");
        bardemo.a("tasmanbk.gif");
        bardemo.a("barcode1.gif");
        bardemo.a("code39/key15.gif");
        bardemo.a("code39/key15skew.gif");
        bardemo.a("code128/photo.jpg");
        bardemo.a("code128/photoskew.jpg");
        bardemo.a("datamatrix/bottles.jpg");
        bardemo.a("datamatrix/embossed.jpg");
        bardemo.a("datamatrix/tasdatmat.gif");
        bardemo.a("ean13/yorklab.gif");
        bardemo.a("ean13/bookbar.jpg");
        bardemo.a("i2of5/baglab.gif");
        bardemo.a("i2of5/faxed.gif");
        bardemo.a("pdf417/newton1.gif");
        bardemo.a("pdf417/newton2.gif");
        bardemo.a("qrcode/qrcode_1.gif");
    }
    catch(Exception exception) { }
}

private BarDemo()
{
    super(_flddo);
    URL url = getClass().getResource("barsicon.gif");
    Toolkit toolkit = Toolkit.getDefaultToolkit();
    setIconImage(toolkit.createImage(url));
    _fldint = new JTextArea("www.tasman.co.uk\nbars@tasman.co.uk\n");
    _fldif = new o();
    _fldif._flddo = true;
    _fldif.q = new Properties();
    Container container = getContentPane();
    container.setLayout(new BorderLayout());
    JButton jbutton = new JButton("Open");
    JButton jbutton1 = new JButton("Read");
    JLabel jlabel = new JLabel("v4.02");
    JToolBar jtoolbar = a(jbutton, jbutton1, jlabel);
    _fldnew = new l(jlabel, _fldif.q);
    JScrollPane jscrollpane = new JScrollPane(_fldnew);
    JScrollPane jscrollpane1 = new JScrollPane(_fldint, 22, 31);
    JSplitPane jsplitpane = new JSplitPane(0, jscrollpane, jscrollpane1);
    jsplitpane.setPreferredSize(new Dimension(600, 400));
    jsplitpane.setDividerLocation(250);
    container.add(jtoolbar, "North");
    container.add(jsplitpane, "Center");
    jbutton.addActionListener(new d(this, jbutton1));
    jbutton1.addActionListener(new c(container));
    addWindowListener(new WindowAdapter() {

        public void windowClosing(WindowEvent windowevent)
        {
            BarDemo.a(a).a((RenderedImage)null);
            System.exit(0);
        }

        final BarDemo a;

        
        {
            a = BarDemo.this;
            super();
        }
    });
}

private JToolBar a(JButton jbutton, JButton jbutton1, JLabel jlabel)
{
    JToolBar jtoolbar = new JToolBar();
    JPanel jpanel = new JPanel();
    jpanel.setLayout(new GridLayout(0, 1));
    jbutton.setToolTipText("Open an image file.");
    jbutton1.setToolTipText("Read the image for barcodes.");
    jbutton.setMnemonic('O');
    jbutton1.setMnemonic('R');
    jpanel.add(jbutton);
    jpanel.add(jbutton1);
    JButton jbutton2 = new JButton("Clear");
    jpanel.add(jbutton2);
    jbutton2.setToolTipText("Clear text area and red detection marks from image.");
    jbutton2.setMnemonic('C');
    jbutton2.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent actionevent)
        {
            BarDemo._mthfor(a).setText("");
            if(BarDemo._mthdo(a).q != null)
                BarDemo._mthdo(a).q.remove("overlay");
            BarDemo.a(a).a(null);
            BarDemo.a(a).repaint();
        }

        final BarDemo a;

        
        {
            a = BarDemo.this;
            super();
        }
    });
    jpanel.setBorder(BorderFactory.createEtchedBorder());
    jtoolbar.add(jpanel);
    jpanel = new JPanel();
    g g1 = new g(this, _fldif);
    jpanel.addMouseListener(new MouseAdapter(g1) {

        public void mousePressed(MouseEvent mouseevent)
        {
            if(mouseevent.isPopupTrigger())
                _fldif.setVisible(true);
        }

        public void mouseReleased(MouseEvent mouseevent)
        {
            if(mouseevent.isPopupTrigger())
                _fldif.setVisible(true);
        }

        final g _fldif;
        final BarDemo a;

        
        {
            a = BarDemo.this;
            _fldif = g1;
            super();
        }
    });
    jpanel.setLayout(new GridLayout(3, 3));
    jpanel.add(new JLabel(""));
    JCheckBox jcheckbox = new JCheckBox("\u2191", _fldif._fldgoto);
    jpanel.add(jcheckbox);
    jcheckbox.setMnemonic(38);
    jcheckbox.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent itemevent)
        {
            BarDemo._mthdo(a)._fldgoto = itemevent.getStateChange() == 1;
        }

        final BarDemo a;

        
        {
            a = BarDemo.this;
            super();
        }
    });
    jpanel.add(new JLabel(""));
    jcheckbox = new JCheckBox("\u2190", _fldif._fldbyte);
    jpanel.add(jcheckbox);
    jcheckbox.setMnemonic(37);
    jcheckbox.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent itemevent)
        {
            BarDemo._mthdo(a)._fldbyte = itemevent.getStateChange() == 1;
        }

        final BarDemo a;

        
        {
            a = BarDemo.this;
            super();
        }
    });
    jpanel.add(new JLabel("scan"));
    jcheckbox = new JCheckBox("\u2192", _fldif._fldcase);
    jpanel.add(jcheckbox);
    jcheckbox.setMnemonic(39);
    jcheckbox.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent itemevent)
        {
            BarDemo._mthdo(a)._fldcase = itemevent.getStateChange() == 1;
        }

        final BarDemo a;

        
        {
            a = BarDemo.this;
            super();
        }
    });
    if(_fldif.q.get("debug") == null)
    {
        jpanel.add(new JLabel(""));
    } else
    {
        jpanel.add(jcheckbox = new JCheckBox("debug", true));
        jcheckbox.addItemListener(new ItemListener() {

            public void itemStateChanged(ItemEvent itemevent)
            {
                BarDemo._mthdo(a).q.put("debug_on_off", new Boolean(itemevent.getStateChange() == 1));
            }

            final BarDemo a;

        
        {
            a = BarDemo.this;
            super();
        }
        });
    }
    jcheckbox = new JCheckBox("\u2193", _fldif.g);
    jpanel.add(jcheckbox);
    jcheckbox.setToolTipText("");
    jcheckbox.setMnemonic(40);
    jcheckbox.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent itemevent)
        {
            BarDemo._mthdo(a).g = itemevent.getStateChange() == 1;
        }

        final BarDemo a;

        
        {
            a = BarDemo.this;
            super();
        }
    });
    jpanel.add(new JLabel(""));
    jpanel.setBorder(BorderFactory.createEtchedBorder());
    jtoolbar.add(jpanel);
    jpanel = new JPanel();
    jpanel.setLayout(new GridLayout(3, 2));
    jpanel.add(new JLabel(" 1-D :", 2));
    ImageIcon imageicon = new ImageIcon(getClass().getResource("tickboxticked.gif"));
    ImageIcon imageicon1 = new ImageIcon(getClass().getResource("tickboxempty.gif"));
    JButton jbutton3 = new JButton("more ...", imageicon1);
    jbutton3.setToolTipText("More 1-D barcode types.");
    JCheckBox jcheckbox1 = new JCheckBox("Code 39", _fldif.r);
    JCheckBox jcheckbox2 = new JCheckBox("Code 128", _fldif._flddo);
    JCheckBox jcheckbox3 = new JCheckBox("I2of5", _fldif._fldnew);
    JCheckBox jcheckbox4 = new JCheckBox("check", _fldif.c);
    h h1 = new h(this, _fldif, jcheckbox1, jcheckbox2, jcheckbox3, jcheckbox4, jbutton3, imageicon, imageicon1);
    jbutton3.addActionListener(new ActionListener(h1, jbutton3) {

        public void actionPerformed(ActionEvent actionevent)
        {
            if(_fldif.getX() == -32767)
            {
                Point point = _flddo.getLocationOnScreen();
                _fldif.setLocation(point.x, point.y + _flddo.getHeight());
            }
            _fldif.setVisible(true);
        }

        final h _fldif;
        final JButton _flddo;
        final BarDemo a;

        
        {
            a = BarDemo.this;
            _fldif = h1;
            _flddo = jbutton;
            super();
        }
    });
    jpanel.add(jcheckbox1);
    jcheckbox1.setMnemonic('3');
    jcheckbox1.addItemListener(new ItemListener(h1) {

        public void itemStateChanged(ItemEvent itemevent)
        {
            BarDemo._mthdo(a).r = itemevent.getStateChange() == 1;
            _fldif.a(3);
        }

        final h _fldif;
        final BarDemo a;

        
        {
            a = BarDemo.this;
            _fldif = h1;
            super();
        }
    });
    jpanel.add(jcheckbox2);
    jcheckbox2.setMnemonic('1');
    jcheckbox2.addItemListener(new ItemListener(h1) {

        public void itemStateChanged(ItemEvent itemevent)
        {
            BarDemo._mthdo(a)._flddo = itemevent.getStateChange() == 1;
            _fldif.a(2);
        }

        final h _fldif;
        final BarDemo a;

        
        {
            a = BarDemo.this;
            _fldif = h1;
            super();
        }
    });
    jcheckbox3.setToolTipText("Interleaved 2 of 5.");
    jcheckbox3.setMnemonic('I');
    jpanel.add(jcheckbox3);
    jcheckbox3.addItemListener(new ItemListener(h1) {

        public void itemStateChanged(ItemEvent itemevent)
        {
            BarDemo._mthdo(a)._fldnew = itemevent.getStateChange() == 1;
            _fldif.a(8);
        }

        final h _fldif;
        final BarDemo a;

        
        {
            a = BarDemo.this;
            _fldif = h1;
            super();
        }
    });
    jpanel.add(jcheckbox4);
    jcheckbox4.setMnemonic('k');
    jcheckbox4.setToolTipText("Enforce checksum when optional.");
    jcheckbox4.addItemListener(new ItemListener(h1) {

        public void itemStateChanged(ItemEvent itemevent)
        {
            BarDemo._mthdo(a).c = itemevent.getStateChange() == 1;
            _fldif.a(-1);
        }

        final h _fldif;
        final BarDemo a;

        
        {
            a = BarDemo.this;
            _fldif = h1;
            super();
        }
    });
    JPanel jpanel1 = new JPanel();
    jpanel1.setLayout(new FlowLayout(0, 0, 3));
    jbutton3.setMnemonic('e');
    jpanel1.add(jbutton3);
    jpanel.add(jpanel1);
    jpanel.setBorder(BorderFactory.createEtchedBorder());
    jtoolbar.add(jpanel);
    jpanel1 = new JPanel();
    jpanel1.setLayout(new GridLayout(3, 2));
    jpanel1.add(new JLabel(" 2-D :"));
    jcheckbox = new JCheckBox("DataMatrix", _fldif.s);
    jcheckbox.setMnemonic('d');
    jpanel1.add(jcheckbox);
    jcheckbox.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent itemevent)
        {
            BarDemo._mthdo(a).s = itemevent.getStateChange() == 1;
        }

        final BarDemo a;

        
        {
            a = BarDemo.this;
            super();
        }
    });
    jcheckbox = new JCheckBox("QR Code", _fldif.p);
    jcheckbox.setMnemonic('q');
    jpanel1.add(jcheckbox);
    jcheckbox.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent itemevent)
        {
            BarDemo._mthdo(a).p = itemevent.getStateChange() == 1;
        }

        final BarDemo a;

        
        {
            a = BarDemo.this;
            super();
        }
    });
    jcheckbox = new JCheckBox("Micro QR", _fldif.l);
    jcheckbox.setMnemonic('m');
    jpanel1.add(jcheckbox);
    jcheckbox.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent itemevent)
        {
            BarDemo._mthdo(a).l = itemevent.getStateChange() == 1;
        }

        final BarDemo a;

        
        {
            a = BarDemo.this;
            super();
        }
    });
    jpanel1.add(new JLabel(" Stacked :"));
    jcheckbox = new JCheckBox("PDF 417", _fldif.n);
    jpanel1.add(jcheckbox);
    jcheckbox.setMnemonic('p');
    jcheckbox.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent itemevent)
        {
            BarDemo._mthdo(a).n = itemevent.getStateChange() == 1;
        }

        final BarDemo a;

        
        {
            a = BarDemo.this;
            super();
        }
    });
    jpanel1.setBorder(BorderFactory.createEtchedBorder());
    jtoolbar.add(jpanel1);
    jpanel = new JPanel();
    jpanel.setLayout(new BorderLayout());
    jpanel1 = new JPanel();
    JButton jbutton4 = new JButton("Settings");
    jbutton4.setMnemonic('s');
    jbutton4.setToolTipText("Change scan interval etc.");
    e e1 = new e(this, _fldif);
    jbutton4.addActionListener(new ActionListener(e1) {

        public void actionPerformed(ActionEvent actionevent)
        {
            _fldif.setVisible(true);
        }

        final e _fldif;
        final BarDemo a;

        
        {
            a = BarDemo.this;
            _fldif = e1;
            super();
        }
    });
    jpanel1.add(jbutton4);
    jpanel.add(jpanel1, "North");
    jpanel1 = new JPanel();
    String as[] = {
        "25%", "50%", "100%", "200%", "400%", "800%"
    };
    JComboBox jcombobox = new JComboBox(as);
    jcombobox.setSelectedItem("100%");
    jpanel1.add(jbutton2 = new JButton("zoom:"));
    jbutton2.setMnemonic('z');
    jbutton2.setMargin(new Insets(0, 0, 0, 0));
    jbutton2.setBorderPainted(false);
    jbutton2.setFocusPainted(false);
    jbutton2.addActionListener(new ActionListener(jcombobox) {

        public void actionPerformed(ActionEvent actionevent)
        {
            _fldif.requestFocus();
        }

        final JComboBox _fldif;
        final BarDemo a;

        
        {
            a = BarDemo.this;
            _fldif = jcombobox;
            super();
        }
    });
    jcombobox.addActionListener(new ActionListener(jcombobox) {

        public void actionPerformed(ActionEvent actionevent)
        {
            double ad[] = {
                0.25D, 0.5D, 1.0D, 2D, 4D, 8D
            };
            BarDemo.a(a).a(ad[_fldif.getSelectedIndex()]);
        }

        final JComboBox _fldif;
        final BarDemo a;

        
        {
            a = BarDemo.this;
            _fldif = jcombobox;
            super();
        }
    });
    jpanel1.add(jcombobox);
    jpanel.add(jpanel1, "Center");
    jlabel.setHorizontalAlignment(0);
    jpanel.add(jlabel, "South");
    jlabel.setToolTipText("(x,y) coordinates in image / version number.");
    jpanel.setBorder(BorderFactory.createEtchedBorder());
    jtoolbar.add(jpanel);
    jpanel.setMaximumSize(jpanel.getPreferredSize());
    return jtoolbar;
}

private void a(String s)
{
    String s1 = System.getProperty("user.dir");
    String s2 = System.getProperty("file.separator");
    File file = new File((new StringBuilder()).append(s1).append(s2).append("bardemo.jar").toString());
    if(!file.exists())
        return;
    file = new File((new StringBuilder()).append(s1).append(s2).append(s).toString());
    if(file.exists())
        return;
    int i = s.indexOf('/');
    try
    {
        if(i != -1)
        {
            File file1 = new File(s.substring(0, i));
            if(!file1.exists())
                file1.mkdirs();
        }
        InputStream inputstream = ClassLoader.getSystemResourceAsStream(s);
        FileOutputStream fileoutputstream = new FileOutputStream(s);
        while((i = inputstream.read()) != -1) 
            fileoutputstream.write(i);
        fileoutputstream.close();
        inputstream.close();
    }
    catch(Exception exception)
    {
        System.out.println((new StringBuilder()).append("Exception: ").append(exception.getMessage()).toString());
    }
}

static l a(BarDemo bardemo)
{
    return bardemo._fldnew;
}

static o _mthdo(BarDemo bardemo)
{
    return bardemo._fldif;
}

static a _mthif(BarDemo bardemo)
{
    return bardemo._fldfor;
}

static JTextArea _mthfor(BarDemo bardemo)
{
    return bardemo._fldint;
}

static String a()
{
    return _flddo;
}

static a a(BarDemo bardemo, a a1)
{
    return bardemo._fldfor = a1;
}

private a _fldfor;
private o _fldif;
private l _fldnew;
private JTextArea _fldint;
private static String _flddo = "Tasman Barcode Reader Java SDK - Demonstration: ";
private static final String a = "v4.02";

}

Esse fonte é seu?
Decodificou o que?
Leia isso aqui

Até mais!

Sim eu codifiquei para ninguem copiar, ai eu tive a infelicidade de perder o meu hd e ter que recuperar todos os meus codigos nesse esquema.

Hummm… Eu não vou ler e tentar entender um código desse tamanho… E acho que quase ninguém irá…
O que você precisa? O que não funciona? Que problema está dando? Pq vc quer fazer um leitor de código de barra? Os aparelhos leitores de código já vão ler a imagem e te devolver os números…

E deixa de ser mentiroso… www.tasman.co.uk

Cara da proxima vez é melhor não responder, por que, se você não tem capacidade para tal, é melhor ficar quieto.

Mesmo assim obrigado.

Talvez agora vc tenha aprendido a importante licao de se fazer backups offline, e usar controle de versao. :wink:

Concordo com vc, porem esse projeto é antigo, agora é que uma empresa grande se interesou.

Eu não havia previsto uma perde de hd, Valeu e boa sorte.

Até a Proxima.

Apoiado!

yuri.tolentino, não precisa ficar nervoso…

Se é vc que desenvolveu, parabéns, mas se é algo tão complexo e cheio de detalhes, não espere que quem não desenvolveu vá tentar ficar uma hora parado tentando entender o que você fez… Explique o problema e a gente tenta ajudar… O pessoal te mostra o caminho, mas dar a mão é complicado, se é que você me entende.

Até mais!

Valeu…

Acho que se ao invés de você pedisse ajuda, você lançasse um desafio pedindo quem era capaz de desvendar o código, você teria respostas melhores.

Esse ponto-e-vírgula parece estar me dizendo que esse código tem um bug no método BarDemo.d.run().

Isso não compila. A chamada ao construtor tem que ser a primeira instrução do construtor da subclasse.

Precisaremos destes arquivos para te ajudar.

Cara, é impressão minha ou o que você quer de verdade é ajuda para desofuscar este código que você descompilou de algum lugar, para então copiá-lo, quebrá-lo, ou qualquer coisa assim. Só que tem vergonha ou medo de admitir isso?

Também são necessários estes arquivos.

Isso é coisa que o compilador cria para fazer a classe interna (anônima) encontrar a classe externa. O que prova que esse código foi descompilado. O equivalente em java normal é:

            jcheckbox.addItemListener(new ItemListener() {
                public void itemStateChanged(ItemEvent itemevent) {
                    _mthdo(a).q.put("debug_on_off", new Boolean(itemevent.getStateChange() == 1));
                }
            });

seria bom colocar dentro das tags [ code ] [ / code ], assim fica mais fácil de tentar entender :smiley: