javax.swing.plaf.nimbus

## Class AbstractRegionPainter.PaintContext

- java.lang.Object
- - javax.swing.plaf.nimbus.AbstractRegionPainter.PaintContext

- Enclosing class:
    AbstractRegionPainter

      protected static class AbstractRegionPainter.PaintContext
      extends Object

  A class encapsulating state useful when painting. Generally, instances of this class are created once, and reused for each paint request without modification. This class contains values useful when hinting the cache engine, and when decoding control points and bezier curve anchors.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected static class` | `AbstractRegionPainter.PaintContext.CacheMode` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PaintContext(Insets insets, Dimension canvasSize, boolean inverted)` | Creates a new PaintContext which does not attempt to cache or scale any cached images.
    `PaintContext(Insets insets, Dimension canvasSize, boolean inverted, AbstractRegionPainter.PaintContext.CacheMode cacheMode, double maxH, double maxV)` | Creates a new PaintContext.

  - ### Method Summary

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PaintContext

          public PaintContext(Insets insets,
                              Dimension canvasSize,
                              boolean inverted)

      Creates a new PaintContext which does not attempt to cache or scale any cached images.
      Parameters:
        `insets` - The stretching insets. May be null. If null, then assumed to be 0, 0, 0, 0.
        `canvasSize` - The size of the canvas used when encoding the various x/y values. May be null. If null, then it is assumed that there are no encoded values, and any calls to one of the "decode" methods will return the passed in value.
        `inverted` - Whether to "invert" the meaning of the 9-square grid and stretching insets

    - #### PaintContext

          public PaintContext(Insets insets,
                              Dimension canvasSize,
                              boolean inverted,
                              AbstractRegionPainter.PaintContext.CacheMode cacheMode,
                              double maxH,
                              double maxV)

      Creates a new PaintContext.
      Parameters:
        `insets` - The stretching insets. May be null. If null, then assumed to be 0, 0, 0, 0.
        `canvasSize` - The size of the canvas used when encoding the various x/y values. May be null. If null, then it is assumed that there are no encoded values, and any calls to one of the "decode" methods will return the passed in value.
        `inverted` - Whether to "invert" the meaning of the 9-square grid and stretching insets
        `cacheMode` - A hint as to which caching mode to use. If null, then set to no caching.
        `maxH` - The maximum scale in the horizontal direction to use before punting and redrawing from scratch. For example, if maxH is 2, then we will attempt to scale any cached images up to 2x the canvas width before redrawing from scratch. Reasonable maxH values may improve painting performance. If set too high, then you may get poor looking graphics at higher zoom levels. Must be >= 1.
        `maxV` - The maximum scale in the vertical direction to use before punting and redrawing from scratch. For example, if maxV is 2, then we will attempt to scale any cached images up to 2x the canvas height before redrawing from scratch. Reasonable maxV values may improve painting performance. If set too high, then you may get poor looking graphics at higher zoom levels. Must be >= 1.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.