Module java.desktop

Class 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
    • 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
      • 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)
      • 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