Javaで印刷可能な文字を検出する方法を知っている人はいますか?
しばらくすると(試行/エラー)、私はこの方法に到達します:
public boolean isPrintableChar( char c ) {
Character.UnicodeBlock block = Character.UnicodeBlock.of( c );
return (!Character.isISOControl(c)) &&
c != KeyEvent.CHAR_UNDEFINED &&
block != null &&
block != Character.UnicodeBlock.SPECIALS;
}
KeyListenerを介して入力を取得し、Ctr-'key 'が正方形を出力します。この機能で十分なようです。
ここにいくつかの文字がありませんか?
これは「フォント」に依存しない方法だったようです。
public boolean isPrintableChar( char c ) {
Character.UnicodeBlock block = Character.UnicodeBlock.of( c );
return (!Character.isISOControl(c)) &&
c != KeyEvent.CHAR_UNDEFINED &&
block != null &&
block != Character.UnicodeBlock.SPECIALS;
}
私はあなたの問題を理解しているかどうか完全にはわかりません。ただし、文字をGraphicsオブジェクトに描画できるかどうかを検出したい場合、およびプレースホルダー文字を出力できない場合は、次のようになります。
Font.canDisplay(int)
フォントが特定のコードポイントを表示できるかどうかをチェックします(ąのように表示可能な文字があるため、フォントがまったく表示可能かどうかをチェックするだけですが、一部のフォントはそれらを表示できません。