Class ChangeableHighlightPainter

java.lang.Object
javax.swing.text.LayeredHighlighter.LayerPainter
org.fife.ui.rtextarea.ChangeableHighlightPainter
All Implemented Interfaces:
Serializable, Highlighter.HighlightPainter
Direct Known Subclasses:
SmartHighlightPainter, SquiggleUnderlineHighlightPainter

public class ChangeableHighlightPainter extends LayeredHighlighter.LayerPainter implements 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:
  • Field Details

    • paint

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

      private boolean roundedEdges
      Whether selections have rounded edges.
    • alphaComposite

      private transient 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).
    • ARCWIDTH

      private static final int ARCWIDTH
      See Also:
    • ARCHEIGHT

      private static final int ARCHEIGHT
      See Also:
  • Constructor Details

    • 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(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(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(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 Details

    • 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:
    • getAlphaComposite

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

      public Paint getPaint()
      Returns the Paint (usually a java.awt.Color) being used to paint highlights.
      Returns:
      The Paint.
      See Also:
    • 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:
    • paint

      public void paint(Graphics g, int offs0, int offs1, Shape bounds, JTextComponent c)
      Paints a highlight.
      Specified by:
      paint in interface 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 Shape paintLayer(Graphics g, int offs0, int offs1, Shape bounds, JTextComponent c, View view)
      Paints a portion of a highlight.
      Specified by:
      paintLayer in class 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(ObjectInputStream s) throws ClassNotFoundException, IOException
      Deserializes a painter.
      Parameters:
      s - The stream to read from.
      Throws:
      ClassNotFoundException - If something bad happens.
      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:
    • setPaint

      public void setPaint(Paint paint)
      Sets the Paint (usually a java.awt.Color) used to paint this highlight.
      Parameters:
      paint - The new Paint.
      See Also:
    • 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:
    • writeObject

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