java - 如何在 Java 中检测当前用户的文本方向首选项?

标签 java text localization

我正在编写自己的 Java GUI 组件,它将扩展 javax.swing.JComponent并使用其 #paint(Graphics)使用java.awt.Graphics#drawString(String, int, int)在自身上绘制文本的方法方法。我不知道用户的语言使用 RTL 还是 LTR 文本,但我确实希望在适当的时候将我的文本放置在组件的左侧或右侧。 如何获取文本的方向,以便知道在哪里绘制字符串?

该项目以 Java 8 为目标。

最佳答案

java.text.Bidi提供了检查文本是否完全从左到右、从右到左或混合的方法。静态方法

Bidi.requiresBidi(char[] text, int start, int limit)

对于从左到右的内容返回 true,对于从右到左或混合的内容返回 false。如果您可以确保您的内容不混合,那么静态方法就足够了。否则,您必须实例化 Bidi 对象才能检索有关文本的详细信息。

关于java - 如何在 Java 中检测当前用户的文本方向首选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28402292/

相关文章:

java - 使用 iTextPdf FontFactory 从/WEB-INF/resources/fonts/foobar.ttf 加载字体

java - 有没有办法将flv文件嵌入Java表单?

javascript - 如何在按键事件处理程序中获取 HTML 文本元素的新值(也适用于特殊按键)?

php - Laravel 重定向到区域设置更改的路由

delphi - 以编程方式更改 Windows XP 中的默认代码页? (来自德尔福)

wpf - 基于 LOCBaml 或 Resx 的本地化的最佳本地化方法是什么?

java - 从哪里开始编写单元测试

java - 为什么util.Date转发日期而不是减去日期?

javascript - 如何使用jquery更改紧随 "span"之后的 "i"中的文本?

postgresql split_part - 如何在第一个拆分键之后拆分