Module java.desktop
Package javax.swing.text.html

## Class ImageView

- java.lang.Object
- - javax.swing.text.View
  - - javax.swing.text.html.ImageView

- All Implemented Interfaces:
    `SwingConstants`

      public class ImageView
      extends View

  View of an Image, intended to support the HTML <IMG> tag. Supports scaling via the HEIGHT and WIDTH attributes of the tag. If the image is unable to be loaded any text specified via the `ALT` attribute will be rendered.

  While this class has been part of swing for a while now, it is public as of 1.4.

  Since:
    1.4
  See Also:
    `IconView`

- - ### Field Summary

    - ### Fields declared in class javax.swing.text.View

      `BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS`

    - ### Fields declared in interface javax.swing.SwingConstants

      `BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ImageView​(Element elem)` | Creates a new view that represents an IMG element.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `changedUpdate​(DocumentEvent e, Shape a, ViewFactory f)` | Invoked when the Elements attributes have changed.
    `float` | `getAlignment​(int axis)` | Determines the desired alignment for this view along an axis.
    `String` | `getAltText()` | Returns the text to display if the image cannot be loaded.
    `AttributeSet` | `getAttributes()` | Fetches the attributes to use when rendering.
    `Image` | `getImage()` | Returns the image to render.
    `URL` | `getImageURL()` | Return a URL for the image source, or null if it could not be determined.
    `Icon` | `getLoadingImageIcon()` | Returns the icon to use while in the process of loading the image.
    `boolean` | `getLoadsSynchronously()` | Returns `true` if the image should be loaded when first asked for.
    `Icon` | `getNoImageIcon()` | Returns the icon to use if the image could not be found.
    `float` | `getPreferredSpan​(int axis)` | Determines the preferred span for this view along an axis.
    `protected StyleSheet` | `getStyleSheet()` | Convenient method to get the StyleSheet.
    `String` | `getToolTipText​(float x, float y, Shape allocation)` | For images the tooltip text comes from text specified with the `ALT` attribute.
    `Shape` | `modelToView​(int pos, Shape a, Position.Bias b)` | Provides a mapping from the document model coordinate space to the coordinate space of the view mapped to it.
    `void` | `paint​(Graphics g, Shape a)` | Paints the View.
    `void` | `setLoadsSynchronously​(boolean newValue)` | Sets how the image is loaded.
    `void` | `setParent​(View parent)` | Establishes the parent view for this view.
    `protected void` | `setPropertiesFromAttributes()` | Update any cached values that come from attributes.
    `void` | `setSize​(float width, float height)` | Sets the size of the view.
    `int` | `viewToModel​(float x, float y, Shape a, Position.Bias[] bias)` | Provides a mapping from the view coordinate space to the logical coordinate space of the model.

    - ### Methods declared in class javax.swing.text.View

      `append, breakView, createFragment, forwardUpdate, forwardUpdateToView, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getGraphics, getMaximumSpan, getMinimumSpan, getNextVisualPositionFrom, getParent, getResizeWeight, getStartOffset, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, preferenceChanged, remove, removeAll, removeUpdate, replace, updateChildren, updateLayout, viewToModel`

    - ### Methods declared in class java.lang.Object

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

- - ### Constructor Detail

    - #### ImageView

          public ImageView​(Element elem)

      Creates a new view that represents an IMG element.
      Parameters:
        `elem` - the element to create a view for

  - ### Method Detail

    - #### getAltText

          public String getAltText()

      Returns the text to display if the image cannot be loaded. This is obtained from the Elements attribute set with the attribute name `HTML.Attribute.ALT`.
      Returns:
        the test to display if the image cannot be loaded.

    - #### getImageURL

          public URL getImageURL()

      Return a URL for the image source, or null if it could not be determined.
      Returns:
        the URL for the image source, or null if it could not be determined.

    - #### getNoImageIcon

          public Icon getNoImageIcon()

      Returns the icon to use if the image could not be found.
      Returns:
        the icon to use if the image could not be found.

    - #### getLoadingImageIcon

          public Icon getLoadingImageIcon()

      Returns the icon to use while in the process of loading the image.
      Returns:
        the icon to use while in the process of loading the image.

    - #### getImage

          public Image getImage()

      Returns the image to render.
      Returns:
        the image to render.

    - #### setLoadsSynchronously

          public void setLoadsSynchronously​(boolean newValue)

      Sets how the image is loaded. If `newValue` is true, the image will be loaded when first asked for, otherwise it will be loaded asynchronously. The default is to not load synchronously, that is to load the image asynchronously.
      Parameters:
        `newValue` - if `true` the image will be loaded when first asked for, otherwise it will be asynchronously.

    - #### getLoadsSynchronously

          public boolean getLoadsSynchronously()

      Returns `true` if the image should be loaded when first asked for.
      Returns:
        `true` if the image should be loaded when first asked for.

    - #### getStyleSheet

          protected StyleSheet getStyleSheet()

      Convenient method to get the StyleSheet.
      Returns:
        the StyleSheet

    - #### getAttributes

          public AttributeSet getAttributes()

      Fetches the attributes to use when rendering. This is implemented to multiplex the attributes specified in the model with a StyleSheet.
      Overrides:
        `getAttributes` in class `View`
      Returns:
        the attributes to use when rendering

    - #### getToolTipText

          public String getToolTipText​(float x,
                                       float y,
                                       Shape allocation)

      For images the tooltip text comes from text specified with the `ALT` attribute. This is overriden to return `getAltText`.
      Overrides:
        `getToolTipText` in class `View`
      Parameters:
        `x` - the x coordinate
        `y` - the y coordinate
        `allocation` - current allocation of the View.
      Returns:
        the tooltip text at the specified location
      See Also:
        `JTextComponent.getToolTipText(java.awt.event.MouseEvent)`

    - #### setPropertiesFromAttributes

          protected void setPropertiesFromAttributes()

      Update any cached values that come from attributes.

    - #### setParent

          public void setParent​(View parent)

      Establishes the parent view for this view. Seize this moment to cache the AWT Container I'm in.
      Overrides:
        `setParent` in class `View`
      Parameters:
        `parent` - the new parent, or `null` if the view is being removed from a parent

    - #### changedUpdate

          public void changedUpdate​(DocumentEvent e,
                                    Shape a,
                                    ViewFactory f)

      Invoked when the Elements attributes have changed. Recreates the image.
      Overrides:
        `changedUpdate` in class `View`
      Parameters:
        `e` - the change information from the associated document
        `a` - the current allocation of the view
        `f` - the factory to use to rebuild if the view has children
      See Also:
        `View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)`

    - #### paint

          public void paint​(Graphics g,
                            Shape a)

      Paints the View.
      Specified by:
        `paint` in class `View`
      Parameters:
        `g` - the rendering surface to use
        `a` - the allocated region to render into
      See Also:
        `View.paint(java.awt.Graphics, java.awt.Shape)`

    - #### getPreferredSpan

          public float getPreferredSpan​(int axis)

      Determines the preferred span for this view along an axis.
      Specified by:
        `getPreferredSpan` in class `View`
      Parameters:
        `axis` - may be either X_AXIS or Y_AXIS
      Returns:
        the span the view would like to be rendered into; typically the view is told to render into the span that is returned, although there is no guarantee; the parent may choose to resize or break the view
      See Also:
        `View.getPreferredSpan(int)`

    - #### getAlignment

          public float getAlignment​(int axis)

      Determines the desired alignment for this view along an axis. This is implemented to give the alignment to the bottom of the icon along the y axis, and the default along the x axis.
      Overrides:
        `getAlignment` in class `View`
      Parameters:
        `axis` - may be either X_AXIS or Y_AXIS
      Returns:
        the desired alignment; this should be a value between 0.0 and 1.0 where 0 indicates alignment at the origin and 1.0 indicates alignment to the full span away from the origin; an alignment of 0.5 would be the center of the view

    - #### modelToView

          public Shape modelToView​(int pos,
                                   Shape a,
                                   Position.Bias b)
                            throws BadLocationException

      Provides a mapping from the document model coordinate space to the coordinate space of the view mapped to it.
      Specified by:
        `modelToView` in class `View`
      Parameters:
        `pos` - the position to convert
        `a` - the allocated region to render into
        `b` - the bias toward the previous character or the next character represented by the offset, in case the position is a boundary of two views; `b` will have one of these values:
        - `Position.Bias.Forward`
        - `Position.Bias.Backward`
      Returns:
        the bounding box of the given position
      Throws:
        `BadLocationException` - if the given position does not represent a valid location in the associated document
      See Also:
        `View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)`

    - #### viewToModel

          public int viewToModel​(float x,
                                 float y,
                                 Shape a,
                                 Position.Bias[] bias)

      Provides a mapping from the view coordinate space to the logical coordinate space of the model.
      Specified by:
        `viewToModel` in class `View`
      Parameters:
        `x` - the X coordinate
        `y` - the Y coordinate
        `a` - the allocated region to render into
        `bias` - the returned bias
      Returns:
        the location within the model that best represents the given point of view
      See Also:
        `View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])`

    - #### setSize

          public void setSize​(float width,
                              float height)

      Sets the size of the view. This should cause layout of the view if it has any layout duties.
      Overrides:
        `setSize` in class `View`
      Parameters:
        `width` - the width >= 0
        `height` - the height >= 0