Class ChangeableHighlightPainter

  • All Implemented Interfaces:
    java.io.Serializable, javax.swing.text.Highlighter.HighlightPainter
    Direct Known Subclasses:
    SmartHighlightPainter, SquiggleUnderlineHighlightPainter

    public class ChangeableHighlightPainter
    extends javax.swing.text.LayeredHighlighter.LayerPainter
    implements java.io.Serializable
    An extension of LayerPainter that allows the user to change several of its properties:
    • Its color/fill style (can use a GradientPaint, for example).
    • Whether the edges of a painted highlight are rounded.
    • Whether painted highlights have translucency.
    Version:
    0.6
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private float alpha
      The alpha value used in computing translucency.
      private java.awt.AlphaComposite alphaComposite
      The alpha composite used to render with translucency.
      private static int ARCHEIGHT  
      private static int ARCWIDTH  
      private java.awt.Paint paint
      The Paint/Color of this highlight.
      private boolean roundedEdges
      Whether selections have rounded edges.
    • Constructor Summary

      Constructors 
      Constructor Description
      ChangeableHighlightPainter()
      Creates a new ChangeableHighlightPainter that paints highlights with the text area's selection color (i.e., behaves exactly like javax.swing.text.DefaultHighlighter.DefaultHighlightPainter ).
      ChangeableHighlightPainter​(java.awt.Paint paint)
      Creates a new highlight painter using the specified Paint without rounded edges.
      ChangeableHighlightPainter​(java.awt.Paint paint, boolean rounded)
      Creates a new highlight painter.
      ChangeableHighlightPainter​(java.awt.Paint paint, boolean rounded, float alpha)
      Creates a new highlight painter.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      float getAlpha()
      Returns the alpha value used in computing the translucency of these highlights.
      private java.awt.AlphaComposite getAlphaComposite()
      Returns the alpha composite to use when rendering highlights with this painter.
      java.awt.Paint getPaint()
      Returns the Paint (usually a java.awt.Color) being used to paint highlights.
      boolean getRoundedEdges()
      Returns whether rounded edges are used when painting selections with this highlight painter.
      void paint​(java.awt.Graphics g, int offs0, int offs1, java.awt.Shape bounds, javax.swing.text.JTextComponent c)
      Paints a highlight.
      java.awt.Shape paintLayer​(java.awt.Graphics g, int offs0, int offs1, java.awt.Shape bounds, javax.swing.text.JTextComponent c, javax.swing.text.View view)
      Paints a portion of a highlight.
      private void readObject​(java.io.ObjectInputStream s)
      Deserializes a painter.
      void setAlpha​(float alpha)
      Sets the alpha value used in rendering highlights.
      void setPaint​(java.awt.Paint paint)
      Sets the Paint (usually a java.awt.Color) used to paint this highlight.
      void setRoundedEdges​(boolean rounded)
      Sets whether rounded edges are used when painting this highlight.
      private void writeObject​(java.io.ObjectOutputStream s)
      Serializes this painter.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • paint

        private java.awt.Paint paint
        The Paint/Color of this highlight.
      • roundedEdges

        private boolean roundedEdges
        Whether selections have rounded edges.
      • alphaComposite

        private transient java.awt.AlphaComposite alphaComposite
        The alpha composite used to render with translucency.
      • alpha

        private float alpha
        The alpha value used in computing translucency. This should stay in the range 0.0f (completely invisible) to 1.0f (completely opaque).
    • Constructor Detail

      • ChangeableHighlightPainter

        public ChangeableHighlightPainter()
        Creates a new ChangeableHighlightPainter that paints highlights with the text area's selection color (i.e., behaves exactly like javax.swing.text.DefaultHighlighter.DefaultHighlightPainter ).
      • ChangeableHighlightPainter

        public ChangeableHighlightPainter​(java.awt.Paint paint)
        Creates a new highlight painter using the specified Paint without rounded edges.
        Parameters:
        paint - The Paint (usually a java.awt.Color) with which to paint the highlights.
      • ChangeableHighlightPainter

        public ChangeableHighlightPainter​(java.awt.Paint paint,
                                          boolean rounded)
        Creates a new highlight painter.
        Parameters:
        paint - The Paint (usually a java.awt.Color) with which to paint the highlights.
        rounded - Whether to use rounded edges on the highlights.
      • ChangeableHighlightPainter

        public ChangeableHighlightPainter​(java.awt.Paint paint,
                                          boolean rounded,
                                          float alpha)
        Creates a new highlight painter.
        Parameters:
        paint - The Paint (usually a java.awt.Color) with which to paint the highlights.
        rounded - Whether to use rounded edges on the highlights.
        alpha - The alpha value to use when painting highlights. This value should be in the range 0.0f (completely transparent) through 1.0f (opaque).
    • Method Detail

      • getAlpha

        public float getAlpha()
        Returns the alpha value used in computing the translucency of these highlights. A value of 1.0f (the default) means that no translucency is used; there is no performance hit for this value. For all other values ([0.0f..1.0f)), there will be a performance hit.
        Returns:
        The alpha value.
        See Also:
        setAlpha(float)
      • getAlphaComposite

        private java.awt.AlphaComposite getAlphaComposite()
        Returns the alpha composite to use when rendering highlights with this painter.
        Returns:
        The alpha composite.
      • getPaint

        public java.awt.Paint getPaint()
        Returns the Paint (usually a java.awt.Color) being used to paint highlights.
        Returns:
        The Paint.
        See Also:
        setPaint(java.awt.Paint)
      • getRoundedEdges

        public boolean getRoundedEdges()
        Returns whether rounded edges are used when painting selections with this highlight painter.
        Returns:
        Whether rounded edges are used.
        See Also:
        setRoundedEdges(boolean)
      • paint

        public void paint​(java.awt.Graphics g,
                          int offs0,
                          int offs1,
                          java.awt.Shape bounds,
                          javax.swing.text.JTextComponent c)
        Paints a highlight.
        Specified by:
        paint in interface javax.swing.text.Highlighter.HighlightPainter
        Parameters:
        g - the graphics context
        offs0 - the starting model offset >= 0
        offs1 - the ending model offset >= offs1
        bounds - the bounding box for the highlight
        c - the editor
      • paintLayer

        public java.awt.Shape paintLayer​(java.awt.Graphics g,
                                         int offs0,
                                         int offs1,
                                         java.awt.Shape bounds,
                                         javax.swing.text.JTextComponent c,
                                         javax.swing.text.View view)
        Paints a portion of a highlight.
        Specified by:
        paintLayer in class javax.swing.text.LayeredHighlighter.LayerPainter
        Parameters:
        g - the graphics context
        offs0 - the starting model offset >= 0
        offs1 - the ending model offset >= offs1
        bounds - the bounding box of the view, which is not necessarily the region to paint.
        c - the editor
        view - View painting for
        Returns:
        region drawing occurred in
      • readObject

        private void readObject​(java.io.ObjectInputStream s)
                         throws java.lang.ClassNotFoundException,
                                java.io.IOException
        Deserializes a painter.
        Parameters:
        s - The stream to read from.
        Throws:
        java.lang.ClassNotFoundException - If something bad happens.
        java.io.IOException - If an IO error occurs.
      • setAlpha

        public void setAlpha​(float alpha)
        Sets the alpha value used in rendering highlights. If this value is 1.0f (the default), the highlights are rendered completely opaque. This behavior matches that of DefaultHighlightPainter and imposes no performance hit. If this value is below 1.0f, it represents how opaque the highlight will be. There will be a small performance hit for values less than 1.0f.
        Parameters:
        alpha - The new alpha value to use for transparency.
        See Also:
        getAlpha()
      • setPaint

        public void setPaint​(java.awt.Paint paint)
        Sets the Paint (usually a java.awt.Color) used to paint this highlight.
        Parameters:
        paint - The new Paint.
        See Also:
        getPaint()
      • setRoundedEdges

        public void setRoundedEdges​(boolean rounded)
        Sets whether rounded edges are used when painting this highlight.
        Parameters:
        rounded - Whether rounded edges should be used.
        See Also:
        getRoundedEdges()
      • writeObject

        private void writeObject​(java.io.ObjectOutputStream s)
                          throws java.io.IOException
        Serializes this painter.
        Parameters:
        s - The stream to write to.
        Throws:
        java.io.IOException - If an IO error occurs.