2015-02-09 54 views
0

我正在編寫自己的Java GUI組件,它將擴展javax.swing.JComponent並使用其#paint(Graphics)方法使用java.awt.Graphics#drawString(String, int, int)方法在其本身上繪製文本。我不知道用戶的語言是否使用RTL或LTR文本,但我確實希望在恰當的時候將文本置於組件的左側或右側。 如何獲取文本的方向,以便我知道在哪裏繪製字符串?如何在Java中檢測當前用戶的文本方向首選項?

該項目的目標的Java 8

+1

這是/這應該是一個用戶偏好?它不應該取決於您要呈現的文字的語言嗎? – 2015-02-09 03:31:47

+0

@StephenC是的,它應該。這就是說,我所知道的是他們是否希望文本通常對齊(例如英文左移),居中,對齊或對齊(例如英文右) – Supuhstar 2015-02-09 11:33:34

+0

呃......在傳統術語中,LTR與RTL渲染不關於對齊。它是關於字符顯示順序的;例如http://unicode.org/reports/tr9/。例如,在阿拉伯語中,一個單詞中的第一個字符在第二個單詞的右側。 – 2015-02-09 11:47:14

回答

1

java.text.Bidi提供方法來檢查,如果文本是完全左到右,從右到左或混合。靜態方法

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

回報true左到右和false從右到左或混合內容。如果你可以確保你的內容不混合,靜態方法就足夠了。否則,您必須實例化一個Bidi對象以檢索有關您的文本的詳細信息。

+0

這不會回答問題(如何找到用戶的雙向偏好......如果有意義的話)或他想問的問題(如何找到用戶對文本對齊和填充的偏好)。 – 2015-02-09 12:29:29

相關問題