int numberX = r.x - width-9;
int numberX = r.x - width-9 + NUMBERS_WIDTH;
    public void paint(Graphics g, Shape allocation) {        Rectangle r = (allocation instanceof Rectangle) ?                (Rectangle)allocation : allocation.getBounds();    	AttributeSet attributes = getAttributes();    	Object o = attributes.getAttribute(StyleConstants.Background);    	Color oldColor = g.getColor();		Integer lineNumber = getLineNumber();    	Color highlightColor = highlight.getHighlight(lineNumber);    	if (highlightColor != null) {    		g.setColor(highlightColor);    		g.fillRect(r.x, r.y, r.width, r.height);    		g.setColor(oldColor);    	}		r.x += NUMBERS_WIDTH;				super.paint(g, r);        FontMetrics metrics = g.getFontMetrics();                 g.setColor(Color.GRAY);        String lineNumberString = lineNumber.toString();        int width = metrics.stringWidth(lineNumberString);        int numberX = r.x - width-9;        int numberY = r.y + metrics.getAscent();       		g.drawString(lineNumberString, numberX, numberY);        g.setColor(oldColor);        // System.out.println("Drawing line for " + lineNumber + " @ " + numberX +"," + numberY);        r.x -= NUMBERS_WIDTH;            }