Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java Swing - How to change the font size on a JPanel's TitledBorder?

I need to be able to programmatically change the font size of all the components in my Swing app. I cannot do this in the usual ways (with UIManager or putClientProperty) as I am using the Nimbus look and feel, so am using the following method to increase the font size of each component in my app individually...

private void enlargeFont(java.awt.Component c, float factor) {
    c.setFont(c.getFont().deriveFont(c.getFont().getSize() * factor));
}

The problem I'm having is that I am using a TitledBorder on my JPanel and (predictably) passing my JPanel into the above method doesn't resize the JPanel's border title.

So is there any way I can change the font size on the border? (If I could get the text of the border, I could then create a new TitledBorder (using a bigger font) and then apply it with the JPanel's setBorder() method... but it doesn't seem possible to get the border text(?).

Does anyone have any suggestions on how to solve?

like image 889
ban-geoengineering Avatar asked Mar 06 '13 23:03

ban-geoengineering


People also ask

How do I change font size in swing?

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.

How do you change text size in Java?

We change the Font Size parameter to change the size of the JLabel Font. The use of the Font() function is shown below: Object. setFont(new Font("Font-Style", Font-Weight, Font Size));


1 Answers

The following worked for me:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    ((javax.swing.border.TitledBorder) jPanel1.getBorder()).
        setTitleFont(new Font("Arial", Font.ITALIC, 14));

    jPanel1.repaint();
}

I've tested this in NetBeans 6.9.1enter image description here

like image 54
Albert Turri Avatar answered Nov 08 '22 02:11

Albert Turri