int width = Utilities.getTabbedTextWidth(txt, g.getFontMetrics(), bounds.x, tabEx, txt.offset);  Color background = view.getBackground(); if (background != null)
int x = r.x; int p = view.getStartOffset(); if (p != p0)
    public void paint(GlyphView view, Graphics g, Shape a, int p0,                      int p1)    {      Color oldColor = g.getColor();      int height = (int) getHeight(view);      Segment txt = view.getText(p0, p1);      Rectangle bounds = a.getBounds();      TabExpander tabEx = null;      View parent = view.getParent();      if (parent instanceof TabExpander)        tabEx = (TabExpander) parent;      int width = Utilities.getTabbedTextWidth(txt, g.getFontMetrics(),                                               bounds.x, tabEx, txt.offset);      // Fill the background of the text run.      Color background = view.getBackground();      if (background != null)        {      g.setColor(background);      g.fillRect(bounds.x, bounds.y, width, height);        }      // Draw the actual text.      g.setColor(view.getForeground());      g.setFont(view.getFont());      int ascent = g.getFontMetrics().getAscent();        Utilities.drawTabbedText(txt, bounds.x, bounds.y + ascent, g, tabEx,                                 txt.offset);      if (view.isStrikeThrough())        {          int strikeHeight = (int) (getAscent(view) / 2);          g.drawLine(bounds.x, bounds.y + strikeHeight, bounds.x + width,                     bounds.y + strikeHeight);        }      if (view.isUnderline())        {          int lineHeight = (int) getAscent(view);          g.drawLine(bounds.x, bounds.y + lineHeight, bounds.x + width,                     bounds.y + lineHeight);        }      g.setColor(oldColor);    }