java.awt
Class ComponentOrientation
java.lang.Object
|
+--java.awt.ComponentOrientation
All Implemented Interfaces:
Serializable
This class is used to differentiate different orientations for text layout.
It controls whether text flows left-to-right or right-to-left, and whether
lines are horizontal or vertical, as in this table:
LT RT TL TR
A B C C B A A D G G D A
D E F F E D B E H H E B
G H I I H G C F I I F C
LT languages are most common (left-to-right lines, top-to-bottom).
This includes Western European languages, and optionally includes Japanese,
Chinese, and Korean.
RT languages (right-to-left lines,
top-to-bottom) are mainly middle eastern, such as Hebrew and Arabic.
TR languages flow top-to-bottom in a line, right-to-left, and are
the basis of Japanese, Chinese, and Korean. Finally,
TL languages
flow top-to-bottom in a line, left-to-right, as in Mongolian.
This is a pretty poor excuse for a type-safe enum, since it is not
guaranteed that orientation objects are unique (thanks to serialization),
yet there is no equals() method. You would be wise to compare the output
of isHorizontal() and isLeftToRight() rather than comparing objects with
==, especially since more constants may be added in the future.
Since:Author:- Bryce McKinlay <bryce@albatross.co.nz>
LEFT_TO_RIGHT
public static final ComponentOrientation LEFT_TO_RIGHT
Items run left to right, and lines flow top to bottom. Examples: English,
French.
RIGHT_TO_LEFT
public static final ComponentOrientation RIGHT_TO_LEFT
Items run right to left, and lines flow top to bottom. Examples: Arabic,
Hebrew.
UNKNOWN
public static final ComponentOrientation UNKNOWN
The orientation is unknown for the locale. For backwards compatibility,
this behaves like LEFT_TO_RIGHT in the instance methods.
getOrientation
public static ComponentOrientation getOrientation(java.util.Locale locale)
Gets an orientation appropriate for the locale.
Parameters:
Returns:
- the orientation for that locale
Throws:
getOrientation
public static ComponentOrientation getOrientation(java.util.ResourceBundle bdl)
Gets an orientation from a resource bundle. This tries the following:
- Use the key "Orientation" to find an instance of ComponentOrientation
in the bundle.
- Get the locale of the resource bundle, and get the orientation of
that locale.
- Give up and get the orientation of the default locale.
-
Parameters:
Returns:
Throws:
isHorizontal
public boolean isHorizontal()
Returns true if the lines are horizontal, in which case lines flow
top-to-bottom. For example, English, Hebrew. Counterexamples: Japanese,
Chinese, Korean, Mongolian.
Returns:
- true if this orientation has horizontal lines
isLeftToRight
public boolean isLeftToRight()
If isHorizontal() returns true, then this determines whether items in
the line flow left-to-right. If isHorizontal() returns false, items in
a line flow top-to-bottom, and this determines if lines flow
left-to-right.
Returns:
- true if this orientation flows left-to-right
LT languages are most common (left-to-right lines, top-to-bottom). This includes Western European languages, and optionally includes Japanese, Chinese, and Korean. RT languages (right-to-left lines, top-to-bottom) are mainly middle eastern, such as Hebrew and Arabic. TR languages flow top-to-bottom in a line, right-to-left, and are the basis of Japanese, Chinese, and Korean. Finally, TL languages flow top-to-bottom in a line, left-to-right, as in Mongolian.
This is a pretty poor excuse for a type-safe enum, since it is not guaranteed that orientation objects are unique (thanks to serialization), yet there is no equals() method. You would be wise to compare the output of isHorizontal() and isLeftToRight() rather than comparing objects with ==, especially since more constants may be added in the future.