2017-03-14 10 views
0

JTableのセルに以下をレンダリングする必要があります。これをどうやってやるの?異なる言語のJavaで文字列をレンダリングする英語、中国語、インド語

種皮漢字1ગુજરાતી2

更新:

私の質問は明確ではないように見えます。上記の文字列はファイルの名前です。これと他の多くのファイル名をJTableに表示する必要があります。データは動的に出力されます。この文字列を正確に表示するには、カスタムレンダラーが必要な場合があります。現在、これは迷惑な文字を表示します。テーブルフォントをCalibriからMS Gothicに変更するだけで、中国語の文字は表示できますが、表示文字は表示されません。しかし、データが動的になるので、使用するフォントを知ることはできません。

文字列をプログラムで確認し、異なるフォントで文字列を適切にレンダリングできるようにする方法があるかどうかを知りたいです。

+0

試しましたか? 'Locale'を使用していますか? – Abubakkar

答えて

0

最も簡単な解決策は、より完全なフォントを使用することです。私はDejaVu家族がまともであると信じており、他の人たちがより良い提案をすることができるかもしれません。 Oracle manualは、論理フォントDialog,DialogInputMonospacedSerifおよびSansSerifもより完全である可能性があることを示唆しています。潜在的にそれらはレンダリングする必要がある特定の文字に応じて、複数の基礎となるフォントにマップすることができます。また、オラクルのJREと一緒に配布されているLucidiaファミリには、中国語、韓国語、日本語の文字はありませんが、かなり完成した可能性があります。

各文字列の文字にCharacter.UnicodeBlock.of(c)を実行し、Set<Character.UnicodeBlock>をアセンブルして、文字列にあるブロックに基づいてどのフォントが最も適切かを推測したり、各文字をレンダリングするカスタムレンダラーまたは一連の文字)を、それらが属するUnicodeブロックに適したフォントで置き換えます。 Unicodeブロックは、含まれるスクリプトに従って分類される傾向があります。

関連する問題