public void paintChild(Graphics g, Rectangle r, int n) { boolean line0 = false; // kludge if (r.x == 3) { // kludge line0 = true; // kludge r.x = 33; // kludge } // kludge super.paintChild(g, r, n); if (line0) r.x = 3; // kludge int previousLineCount = getPreviousLineCount(); String formattedNumber; final int numberX = r.x - getLeftInset(); final int numberY = r.y + r.height - 3; // was 5 if (n > 0) { // This seems to set n > 0 if there is wrapping. Don't put out // a bogus line number formattedNumber = " "; } else { formattedNumber = Integer.toString(previousLineCount + n + 1); while (formattedNumber.length() < 3) { formattedNumber = " " + formattedNumber; } } g.drawString(formattedNumber, numberX, numberY); }
@Override public void paintChild(Graphics g, Rectangle r, int n) { super.paintChild(g, r, n); if (viewFactory.isLineNumbersVisible()) { if (n == 0) { g.setColor(Color.gray); int lineAscent = g.getFontMetrics().getAscent(); g.setFont(numberFont); //int numberAscent = g.getFontMetrics().getAscent(); int lineNumber = getDocument(). getDefaultRootElement(). getElementIndex(getStartOffset()); int numberX = r.x - getLeftInset(); //int numberY = r.y + g.getFontMetrics().getAscent(); int numberY = r.y + lineAscent; g.drawString(Integer.toString(lineNumber + 1), numberX, numberY); } } } }
super.paintChild(g, r, n);