2009-05-21 79 views
3

[編輯]在OSX上發生這種事情與Java 1.5! (但也可能發生在Windows上!)Java語言環境字體問題..?

看來我的Java Swing程序的日本用戶不能在JTextFields中寫日文符號。其實他們可以寫,但沒有看到它們。他們只看到塊以某種方式表明我認爲該字體不支持這些符號。

我爲各種原因設置了自己的字體(「Lucida Sans」,Font.PLAIN,12) - 我不想改變它。我的問題是:

  1. 將JTextFields顯示日語符號沒有我設置此字體?

  2. 我可以檢測哪些語言環境完全由我的字體支持,並只在這些情況下設置它,但保留所有其他情況下的標準Java字體,如Locale.Japan?

  3. 你有什麼建議嗎?

謝謝你的幫忙!

回答

2

出於這個原因,我的國際化應用程序根據語言環境設置其字體。回答您的問題:

  1. 這可能取決於正在使用的Windows版本。這是安裝了日文字體的美版嗎?還是這是日本銷售的版本?我不知道你的問題的確切答案,但我希望答案是,「這取決於」。

  2. 我不知道有任何標準的方法來做到這一點。我發現了一個很好的工具來調查這種事情:BabelMap。這會告訴你到底哪些字符被任何給定的字體支持。

  3. 其他建議:根據語言環境設置字體,至少對於選擇的語言環境。

+0

OSX上的Java 1.5發生這種情況! (但也可能發生在Windows上)。 – 2009-05-21 22:41:58

+0

在BabelMap中 - 與日文符號對應的Unicode塊名稱是什麼? – 2009-05-21 23:31:32

3

將JTextFields將顯示沒有我設置這個字體符號的日本?

最有可能的,因爲JRE會選擇默認。

可我發現它的語言環境是由我的字體完全支持,只設置在這些情況下,但留下了標準的Java字體爲所有其他情況下,像Locale.Japan?

是,在理論上,雖然容易將測試是否該字體可以使用該方法canDisplay(char)在字體顯示區域設置特定的字符。如果沒有,您可以切換到默認值。

你有什麼建議嗎?

Here's a link on this topic that may help

你有一個鏈接,你的產品?