如何在 Java 中检测当前用户的文本方向偏好?
How do I detect the current user's text direction preference in Java?
我正在编写自己的 Java GUI 组件,它将扩展 javax.swing.JComponent
and use its #paint(Graphics)
method to paint text on itself with the java.awt.Graphics#drawString(String, int, int)
方法。我不知道用户的语言是使用 RTL 还是 LTR 文本,但我确实希望我的文本在适当的时候放在组件的左侧或右侧。 如何获取文本的方向以便知道在何处绘制字符串?
这个项目的目标是 Java 8.
class java.text.Bidi
提供了检查文本是否完全从左到右、从右到左或混合的方法。静态方法
Bidi.requiresBidi(char[] text, int start, int limit)
returns true
用于从左到右,false
用于从右到左或混合内容。如果您可以确保您的内容不混合,静态方法就足够了。否则,您必须实例化一个 Bidi 对象来检索有关文本的详细信息。
我正在编写自己的 Java GUI 组件,它将扩展 javax.swing.JComponent
and use its #paint(Graphics)
method to paint text on itself with the java.awt.Graphics#drawString(String, int, int)
方法。我不知道用户的语言是使用 RTL 还是 LTR 文本,但我确实希望我的文本在适当的时候放在组件的左侧或右侧。 如何获取文本的方向以便知道在何处绘制字符串?
这个项目的目标是 Java 8.
class java.text.Bidi
提供了检查文本是否完全从左到右、从右到左或混合的方法。静态方法
Bidi.requiresBidi(char[] text, int start, int limit)
returns true
用于从左到右,false
用于从右到左或混合内容。如果您可以确保您的内容不混合,静态方法就足够了。否则,您必须实例化一个 Bidi 对象来检索有关文本的详细信息。