web-dev-qa-db-ja.com

フォントサイズを大きくするための組み込みメソッドがJavaにありますか?

フォントサイズを大きくするための組み込みメソッドがJavaにありますか?

13
Raji

Font クラスでは、フォントサイズを指定できます。

したがって、フォントを作成するには、次のようにします。

_Font f = new Font("serif", Font.PLAIN, fontSize);
_

fontSizeパラメータは、Fontのサイズを決定します。

既存のFontオブジェクトのサイズを実際に変更することはできません。同様の効果を実現する最良の方法は、deriveFont(size)メソッドを使用して、サイズが異なるほぼ同一の新しいFontを作成することです。

_Font biggerFont = existingFont.deriveFont(bigNumber);
_
17
jjnguy

以下を使用して、異なるサイズの新しいフォントを派生させることができます。

Font original = // some font
Font bigger = original.deriveFont(newSize);

NewSizeがfloatの場合、not intです。他の人が指摘しているように、これはJavaDoc forFontに詳しく記載されています。

10
tddmonkey

特定のJLabelのフォントサイズを変更したい場合は、次のことができます。

label.setFont(label.getFont().deriveFont(newSize));

newSizefloatではなくintであることを確認してください。

8
Avrom

私はこの質問を「Swingのフォントサイズを全面的に増やすにはどうすればよいか」と解釈しました。これを行うための組み込みの方法はわかりませんが、Swingコンポーネントを作成する前に、起動時にUIManagerクラスの値を変更することで自分で行うことができます。

これを行うには、乗数として使用するパラメーターをアプリに渡します。 150を渡すと、既存のすべてのフォントに150%が乗算されます。コードは次のとおりです

public static void initializeFontSize() {
    String fontSizeParam = System.getProperty("myapp.fontSize");
    if (fontSizeParam != null) {
        float multiplier = Integer.parseInt(fontSizeParam) / 100.0f;
        UIDefaults defaults = UIManager.getDefaults();
        int i = 0;
        for (Enumeration e = defaults.keys(); e.hasMoreElements(); i++) {
            Object key = e.nextElement();
            Object value = defaults.get(key);
            if (value instanceof Font) {
                Font font = (Font) value;
                int newSize = Math.round(font.getSize() * multiplier);
                if (value instanceof FontUIResource) {
                    defaults.put(key, new FontUIResource(font.getName(), font.getStyle(), newSize));
                } else {
                    defaults.put(key, new Font(font.getName(), font.getStyle(), newSize));
                }
            }
        }
    }
}
7
CarlG

アプリケーションを実行するときに、プロパティswing.plaf.metal.controlFontを設定できます。

Java -Dswing.plaf.metal.controlFont = Dialog-50 YourMainClass

この例では、デフォルトのフォントをサイズ50の「ダイアログ」に設定します。

6
cd1

質問はあまりにも曖昧すぎて、良い答えを出すことはできません。ただし、アプリケーションのフォントサイズを体系的に増やしたいと思います。

Java Swingアプリケーションのフォントフェース、スタイル、およびサイズは、LookAndFeelメカニズムを介して制御されます。変更をすべてに適用する場合は、ルックアンドフィールでフォントを変更する必要があります。特定のタイプのスイングコンポーネント。

IManager の例を見てください。

一部のUIコンポーネントのフォントをグローバルに変更する方法は次のとおりです。

    UIManager.put("Label.font", new FontUIResource(new Font("Dialog", Font.PLAIN, 10)));
    UIManager.put("Button.font", new FontUIResource(new Font("Dialog", Font.BOLD, 10)));
    UIManager.put("TextField.font", new FontUIResource(new Font("Dialog", Font.PLAIN, 10)));
3
rustyx