int (Graphics g, CharSequence text, int x, int y, Color effectColor, EffectType effectType, int fontType, Color fontColor) { int xStart = x; int start = 0; final int textLength = text.length(); for (int i = 0; i < textLength; i++) { if (text.charAt(i) != '\t') continue; x = drawTablessString(text, start, i, g, x, y, fontType, fontColor); int x1 = nextTabStop(x); drawTabPlacer(g, y, x, x1); x = x1; start = i + 1; } x = drawTablessString(text, start, textLength, g, x, y, fontType, fontColor); if (effectColor != null) { Color savedColor = g.getColor(); int w = getTextSegmentWidth(text, xStart, fontType); // myBorderEffect.flushIfCantProlong(g, this, effectType, effectColor); if (effectType == EffectType.LINE_UNDERSCORE) { g.setColor(effectColor); g.drawLine(xStart, y + 1, xStart + w, y + 1); g.setColor(savedColor); } else { if (effectType == EffectType.STRIKEOUT) { g.setColor(effectColor); int y1 = y - getCharHeight() / 2; g.drawLine(xStart, y1, xStart + w, y1); g.setColor(savedColor); } else { if (effectType == EffectType.WAVE_UNDERSCORE) { g.setColor(effectColor); drawWave(g, xStart, xStart + w, y + 1); g.setColor(savedColor); } } } } return x; }