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
`ImageView​(Element elem)` Creates a new view that represents an IMG element.

### Method Summary

All Methods Instance Methods Concrete Methods
`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