2011-09-13 57 views
4

對於在Java GUI中的播放按鈕我目前使用的按鈕標籤設置爲'▻'(在Unicode符號表中找到此符號)。據我所知,最好不要直接在源代碼中使用這些符號,而應該在本例中使用顯式的Unicode代表,如\u25BB,因爲某些工具(編輯器,...)可能無法處理非ASCII的文件內容(是否正確?)。在Java GUI中使用Unicode字符安全嗎?

假設編譯的類包含正確的字符,在何種情況下將在GUI 顯示當前的PC操作系統上的預期的符號? Linux,Windows,Mac應該都支持UTF-16,對吧?可用的字體或字體設置是否會導致此方法出現問題?

(當然,我可以添加一個圖標,但爲什麼添加額外的資源,如果一個符號應該已經提供給...這是一個便攜式解決方案)

+0

你用什麼編輯器? –

回答

5

可用的字體或字體設置是否會導致此方法出現問題?

不幸的是,當然,你可以在源代碼中使用unicode,但問題是,目前的unicode has 246,943 code points assigned顯然沒有字體甚至只有一小部分定義。當字形不可用時,您會得到正方形或其他奇怪的渲染。我曾經遇到過一些相對簡單的符號,如³在一臺Windows計算機上顯示正常,並在下一臺幾乎完全相同的計算機上顯示爲正方形。各種語言和語言環境設置以及次要版本更改都會影響這一點,所以它非常脆弱。

AFAIK保證始終可用的字符很少(如果有的話)。 Java的Font類具有一些方法,例如canDisplaycanDisplayUpTo,這對於在運行時檢查這一點很有用。

而不是使用圖標,您可以捆綁一些具有所需特殊字符的TrueType字體,然後在應用程序的任何地方使用該字體。