Are there any built-in methods in Java to increase Font size?
6 Answers
The Font class allows you to specify font size.
So, to create a font you do something like this:
Font f = new Font("serif", Font.PLAIN, fontSize);
The fontSize parameter will determine the size of your Font.
You can't actually change the size of an existing Font object.  The best way to achieve a similar effect is to use the deriveFont(size) method to create a new almost identical Font that is a different size.
Font biggerFont = existingFont.deriveFont(bigNumber);
- 136,852
 - 53
 - 295
 - 323
 
- 
                    4Note: you need to specify that `bigNumber` is a float, otherwise you'll trigger the `deriveFont(int style)` overload. I.e. `existingFont.deriveFont(100f);`. – Duncan Jones Aug 11 '16 at 12:30
 
You can derive a new Font with a different size by using the following:
Font original = // some font
Font bigger = original.deriveFont(newSize);
Where newSize is a float, not an int. This is well documented in the JavaDoc for Font as other people have pointed out
- 20,798
 - 10
 - 58
 - 67
 
- 
                    2+1. @Raji: In addition, if you want to increase the font size on the GUI components this way you can do it while retaining the font set and format. For example: myLabel.setFont(myLabel.getFont().deriveFont(20)); You can then implement a recursive algorithm which performs this operation on the entire component hierarchy. Just an idea. – akarnokd Jun 25 '09 at 14:08
 - 
                    3newSize _must_ be a `float`, not an `int`. See [deriveFont(float)](http://docs.oracle.com/javase/6/docs/api/java/awt/Font.html#deriveFont(float)) and answer from Avrom. [deriveFont(int)](http://docs.oracle.com/javase/6/docs/api/java/awt/Font.html#deriveFont(int)) applies a _style_ (encoded as an `int` value) to the font. – Eugen Labun Mar 06 '12 at 14:14
 
Assuming that you want to change the font size on a specific JLabel, you can do:
label.setFont(label.getFont().deriveFont(newSize));
Make sure that newSize is a float not an int.
- 4,967
 - 2
 - 28
 - 35
 
I interpreted this question as "How can I increase font size for Swing across the board." I'm not aware of any built-in way to do this, but you could do it yourself by modifying the values in the UIManager class on startup before you create any Swing components.
I do this by having a parameter passed into my app that I use as a multiplier. If I pass in 150 it'll multiply all existing fonts by 150%. The code is as follows
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));
                }
            }
        }
    }
}
- 1,656
 - 1
 - 17
 - 21
 
you can set the property swing.plaf.metal.controlFont when running you application:
java -Dswing.plaf.metal.controlFont=Dialog-50 YourMainClass
in this example, you set the default font to be "Dialog" with size 50.
- 15,908
 - 12
 - 46
 - 47
 
The question is way too vague to give a good answer. But I think you want to systematically increase font size in your application.
The font face, style and size in a Java Swing application is controlled via the LookAndFeel mechanism. You need to change the font in the look-and-feel if you want the change to apply to all Swing components of a given type.
Have a look at the UIManager example.
Here's how to change the font globally for some UI components:
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)));
- 4,081
 - 10
 - 26
 - 36
 
- 80,671
 - 25
 - 200
 - 267