Java中是否有任何内置方法可以增加字体大小?

时间:2009-06-25 13:19:14

标签: java swing

Java中是否有任何内置方法可以增加字体大小?

6 个答案:

答案 0 :(得分:17)

Font类允许您指定字体大小。

因此,要创建字体,您可以执行以下操作:

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

fontSize参数将决定Font的大小。

您实际上无法更改现有Font对象的大小。获得类似效果的最佳方法是使用deriveFont(size)方法创建一个不同大小的新几乎相同的Font

Font biggerFont = existingFont.deriveFont(bigNumber);

答案 1 :(得分:10)

您可以使用以下方法派生具有不同大小的新字体:

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

其中newSize是一个浮点数,不是一个int。正如其他人指出的那样,这在JavaDoc for Font中有详细记载

答案 2 :(得分:7)

假设您要更改特定JLabel的字体大小,您可以执行以下操作:

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

确保newSizefloat而不是int

答案 3 :(得分:7)

我将这个问题解释为“如何全面增加Swing的字体大小”。我不知道有任何内置的方法可以做到这一点,但你可以在创建任何Swing组件之前通过在启动时修改UIManager类中的值来自己完成。

我通过将一个参数传递到我的app中来实现这一点,我将其用作乘数。如果我传入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));
                }
            }
        }
    }
}

答案 4 :(得分:6)

运行应用程序时可以设置属性 swing.plaf.metal.controlFont

  

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

在此示例中,您将默认字体设置为“Dialog”,大小为50。

答案 5 :(得分:2)

这个问题太模糊了,无法给出一个好的答案。但我认为您希望系统地增加应用程序中的字体大小。

Java Swing应用程序中的字体,样式和大小是通过LookAndFeel机制控制的。如果希望更改应用于给定类型的所有Swing组件,则需要更改外观中的字体。

查看UIManager示例。

以下是如何为某些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)));