Class FontData


  • public final class FontData
    extends Object
    Instances of this class describe operating system fonts.

    For platform-independent behaviour, use the get and set methods corresponding to the following properties:

    height
    the height of the font in points
    name
    the face name of the font, which may include the foundry
    style
    A bitwise combination of NORMAL, ITALIC and BOLD
    If extra, platform-dependent functionality is required:
    • On Windows, the data member of the FontData corresponds to a Windows LOGFONT structure whose fields may be retrieved and modified.
    • On X, the fields of the FontData correspond to the entries in the font's XLFD name and may be retrieved and modified.
    Application code does not need to explicitly release the resources managed by each instance when those instances are no longer required, and thus no dispose() method is provided.
    See Also:
    Font, Sample code and further information
    • Field Summary

      Fields 
      Modifier and Type Field Description
      org.eclipse.swt.internal.win32.LOGFONT data
      A Win32 LOGFONT struct (Warning: This field is platform dependent)
      float height
      The height of the font data in points (Warning: This field is platform dependent)
    • Constructor Summary

      Constructors 
      Constructor Description
      FontData()
      Constructs a new uninitialized font data.
      FontData​(String string)
      Constructs a new FontData given a string representation in the form generated by the FontData.toString method.
      FontData​(String name, int height, int style)
      Constructs a new font data given a font name, the height of the desired font in points, and a font style.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(Object object)
      Compares the argument to the receiver, and returns true if they represent the same object using a class specific comparison.
      int getHeight()
      Returns the height of the receiver in points.
      String getLocale()
      Returns the locale of the receiver.
      String getName()
      Returns the name of the receiver.
      int getStyle()
      Returns the style of the receiver which is a bitwise OR of one or more of the SWT constants NORMAL, BOLD and ITALIC.
      int hashCode()
      Returns an integer hash code for the receiver.
      void setHeight​(int height)
      Sets the height of the receiver.
      void setLocale​(String locale)
      Sets the locale of the receiver.
      void setName​(String name)
      Sets the name of the receiver.
      void setStyle​(int style)
      Sets the style of the receiver to the argument which must be a bitwise OR of one or more of the SWT constants NORMAL, BOLD and ITALIC.
      String toString()
      Returns a string representation of the receiver which is suitable for constructing an equivalent instance using the FontData(String) constructor.
      static FontData win32_new​(org.eclipse.swt.internal.win32.LOGFONT data, float height)
      Invokes platform specific functionality to allocate a new font data.
    • Field Detail

      • data

        public org.eclipse.swt.internal.win32.LOGFONT data
        A Win32 LOGFONT struct (Warning: This field is platform dependent)

        IMPORTANT: This field is not part of the SWT public API. It is marked public only so that it can be shared within the packages provided by SWT. It is not available on all platforms and should never be accessed from application code.

        Restriction:
        This field is not intended to be referenced by clients.
      • height

        public float height
        The height of the font data in points (Warning: This field is platform dependent)

        IMPORTANT: This field is not part of the SWT public API. It is marked public only so that it can be shared within the packages provided by SWT. It is not available on all platforms and should never be accessed from application code.

        Restriction:
        This field is not intended to be referenced by clients.
    • Constructor Detail

      • FontData

        public FontData()
        Constructs a new uninitialized font data.
      • FontData

        public FontData​(String string)
        Constructs a new FontData given a string representation in the form generated by the FontData.toString method.

        Note that the representation varies between platforms, and a FontData can only be created from a string that was generated on the same platform.

        Parameters:
        string - the string representation of a FontData (must not be null)
        Throws:
        IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the argument is null
        • ERROR_INVALID_ARGUMENT - if the argument does not represent a valid description
        See Also:
        toString()
      • FontData

        public FontData​(String name,
                        int height,
                        int style)
        Constructs a new font data given a font name, the height of the desired font in points, and a font style.
        Parameters:
        name - the name of the font (must not be null)
        height - the font height in points
        style - a bit or combination of NORMAL, BOLD, ITALIC
        Throws:
        IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - when the font name is null
        • ERROR_INVALID_ARGUMENT - if the height is negative
    • Method Detail

      • equals

        public boolean equals​(Object object)
        Compares the argument to the receiver, and returns true if they represent the same object using a class specific comparison.
        Overrides:
        equals in class Object
        Parameters:
        object - the object to compare with this object
        Returns:
        true if the object is the same as this object and false otherwise
        See Also:
        hashCode()
      • getHeight

        public int getHeight()
        Returns the height of the receiver in points.
        Returns:
        the height of this FontData
        See Also:
        setHeight(int)
      • getLocale

        public String getLocale()
        Returns the locale of the receiver.

        The locale determines which platform character set this font is going to use. Widgets and graphics operations that use this font will convert UNICODE strings to the platform character set of the specified locale.

        On platforms where there are multiple character sets for a given language/country locale, the variant portion of the locale will determine the character set.

        Returns:
        the String representing a Locale object
        Since:
        3.0
      • getName

        public String getName()
        Returns the name of the receiver. On platforms that support font foundries, the return value will be the foundry followed by a dash ("-") followed by the face name.
        Returns:
        the name of this FontData
        See Also:
        setName(java.lang.String)
      • getStyle

        public int getStyle()
        Returns the style of the receiver which is a bitwise OR of one or more of the SWT constants NORMAL, BOLD and ITALIC.
        Returns:
        the style of this FontData
        See Also:
        setStyle(int)
      • hashCode

        public int hashCode()
        Returns an integer hash code for the receiver. Any two objects that return true when passed to equals must return the same value for this method.
        Overrides:
        hashCode in class Object
        Returns:
        the receiver's hash
        See Also:
        equals(java.lang.Object)
      • setHeight

        public void setHeight​(int height)
        Sets the height of the receiver. The parameter is specified in terms of points, where a point is one seventy-second of an inch.
        Parameters:
        height - the height of the FontData
        Throws:
        IllegalArgumentException -
        • ERROR_INVALID_ARGUMENT - if the height is negative
        See Also:
        getHeight()
      • setLocale

        public void setLocale​(String locale)
        Sets the locale of the receiver.

        The locale determines which platform character set this font is going to use. Widgets and graphics operations that use this font will convert UNICODE strings to the platform character set of the specified locale.

        On platforms where there are multiple character sets for a given language/country locale, the variant portion of the locale will determine the character set.

        Parameters:
        locale - the String representing a Locale object
        See Also:
        Locale.toString()
      • setName

        public void setName​(String name)
        Sets the name of the receiver.

        Some platforms support font foundries. On these platforms, the name of the font specified in setName() may have one of the following forms:

        1. a face name (for example, "courier")
        2. a foundry followed by a dash ("-") followed by a face name (for example, "adobe-courier")

        In either case, the name returned from getName() will include the foundry.

        On platforms that do not support font foundries, only the face name (for example, "courier") is used in setName() and getName().

        Parameters:
        name - the name of the font data (must not be null)
        Throws:
        IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - when the font name is null
        See Also:
        getName()
      • setStyle

        public void setStyle​(int style)
        Sets the style of the receiver to the argument which must be a bitwise OR of one or more of the SWT constants NORMAL, BOLD and ITALIC. All other style bits are ignored.
        Parameters:
        style - the new style for this FontData
        See Also:
        getStyle()
      • toString

        public String toString()
        Returns a string representation of the receiver which is suitable for constructing an equivalent instance using the FontData(String) constructor.
        Overrides:
        toString in class Object
        Returns:
        a string representation of the FontData
        See Also:
        FontData
      • win32_new

        public static FontData win32_new​(org.eclipse.swt.internal.win32.LOGFONT data,
                                         float height)
        Invokes platform specific functionality to allocate a new font data.

        IMPORTANT: This method is not part of the public API for FontData. It is marked public only so that it can be shared within the packages provided by SWT. It is not available on all platforms, and should never be called from application code.

        Parameters:
        data - the LOGFONT for the font data
        height - the height of the font data
        Returns:
        a new font data object containing the specified LOGFONT and height
        Restriction:
        This method is not intended to be referenced by clients.