2011-09-13 2 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なので、明示的に定義されているものもありません。グリフが利用できないときは、四角形やその他の奇妙なレンダリングが行われます。私は、³のような比較的シンプルなシンボルが1台のWindowsコンピュータでうまくレンダリングされ、ほぼ同じコンピュータの次の四角形として表示されるケースがありました。すべての種類の言語とロケールの設定とマイナーバージョンの変更がこれに影響するため、かなり壊れやすいものです。

AFAIK常に利用可能であることが保証されている文字はほとんどありません。 JavaのFontクラスには、canDisplaycanDisplayUpToのようないくつかのメソッドがあります。これは実行時にこれを確認するのに便利です。

アイコンを使用する代わりに、必要な特殊文字を含む良いTrueTypeフォントをバンドルして、そのフォントをアプリのどこでも使用できます。

3
I currently use a button with the label set to ' ▻ ' 

ではなく、私はいつもJButton(String text, Icon icon)を使用そこにこのFontまたは別のFontであれば、そしてIconは関係ありません、UTF-16またはUnicode

関連する問題