準備ができている限り、デフォルトのフォントを変更することは特に難しいことではありません。
フォントをJasperReportsにバンドルする方法については、JasperReportsのカスタムフォントをご覧ください。また、最新の情報については、公式のドキュメントやフォーラムで確認することをお勧めします。
ウェブ上にはたくさんの例があります。「JasperReportsカスタムフォント」をGoogleで検索してください。
Swingに必要なフォントを設定することは難しくありませんが、使用するルックアンドフィールがそのプロパティをどのように保存するかに大きく依存します。
フォントがシステムにインストールされているかどうか、またはフォントを埋め込みリソースとして提供しているかどうかに応じて、次のことを行う必要がある場合とない場合があります。
システムにインストールされているフォントに依存していないが、自分でフォントを提供している場合は、フォントをロードする必要があります。
// Load the font, for example "Telugu.ttf"
String fName = "/fonts/" + name;
InputStream is = null;
try {
InputStream is = DemoFonts.class.getResourceAsStream(fName);
font = Font.createFont(Font.TRUETYPE_FONT, is);
} finally {
try {
is.close();
} catch (Exception exp) {
}
}
それ以外の場合は、必要なフォントファミリ名Font
を使用してオブジェクトを簡単に作成できるはずです。Telugu
次に、現在のルックアンドフィールで使用されているデフォルトのフォントを、使用したいフォントに変更します。これは、ルックアンドフィールをインストールした後、およびUI要素を作成する前に行う必要があります。
Object[] keys = keySet.toArray(new Object[keySet.size()]);
for (Object key : keys) {
if (key != null && key.toString().toLowerCase().contains("font")) {
Object oValue = UIManager.getDefaults().get(key);
if (oValue != null) {
String value = oValue == null ? null : UIManager.getDefaults().get(key).toString();
UIManager.put(key, font);
}
}
}
ここで、Swingはルックアンドフィールでデフォルトで固定幅フォントを使用する傾向があることに注意する必要があります。フォントを可変幅フォントに変更すると、レイアウトが変更されます。