public void paint(Graphics g)
    {
        debug("paint("+g+")");
        debug("cursor="+he.cursor+" buff.length="+he.buff.length);
        Dimension d=getMinimumSize();
        g.setColor(Color.white);
        g.fillRect(0,0,d.width,d.height);
        g.setColor(Color.black);

        g.setFont(he.font);

        int ini=he.getInicio()*16;
        int fin=ini+(he.getLineas()*16);
        if(fin>he.buff.length) fin=he.buff.length;

        //datos hex
        int x=0;
        int y=0;
        for(int n=ini;n<fin;n++)
        {
            if(n==he.cursor)
            {
                if(hasFocus())
                {
                    g.setColor(Color.black);
                    he.fondo(g,(x*3),y,2);
                    g.setColor(Color.blue);
                    he.fondo(g,(x*3)+cursor,y,1);
                } else
                {
                    g.setColor(Color.blue);
                    he.cuadro(g,(x*3),y,2);
                }

                if(hasFocus()) g.setColor(Color.white); else g.setColor(Color.black);
            } else
            {
                g.setColor(Color.black);
            }

            String s=("0"+Integer.toHexString(he.buff[n]));
            s=s.substring(s.length()-2);
            he.printString(g,s,((x++)*3),y);
            if(x==16)
            {
                x=0;
                y++;
            }
        }
    }