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);

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

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

            String s=""+new Character((char)he.buff[n]);
            if((he.buff[n]<20)||(he.buff[n]>126)) s=""+(char)16;
            he.printString(g,s,(x++),y);
            if(x==16)
            {
                x=0;
                y++;
            }
        }

    }