--- a/jsyntaxpane/src/main/java/jsyntaxpane/SyntaxView.java +++ a/jsyntaxpane/src/main/java/jsyntaxpane/SyntaxView.java @@ -24,11 +24,14 @@ import java.util.Iterator; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; + import javax.swing.text.BadLocationException; +import javax.swing.text.Document; import javax.swing.text.Element; import javax.swing.text.PlainView; import javax.swing.text.Segment; import javax.swing.text.ViewFactory; + import jsyntaxpane.util.Configuration; public class SyntaxView extends PlainView { @@ -61,11 +64,15 @@ public class SyntaxView extends PlainView { @Override protected int drawUnselectedText(Graphics graphics, int x, int y, int p0, - int p1) { + int p1) throws BadLocationException { setRenderingHits((Graphics2D) graphics); Font saveFont = graphics.getFont(); Color saveColor = graphics.getColor(); - SyntaxDocument doc = (SyntaxDocument) getDocument(); + Document document = getDocument(); + if (!(document instanceof SyntaxDocument)) { + return super.drawUnselectedText(graphics, x, y, p0, p1); + } + SyntaxDocument doc = (SyntaxDocument) document; Segment segment = getLineBuffer(); // Draw the right margin first, if needed. This way the text overlays // the margin