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

16,233

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

Share:
16,233
ban-geoengineering
Author by

ban-geoengineering

Updated on June 04, 2022

Comments

  • ban-geoengineering
    ban-geoengineering about 2 years

    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?

  • Hosein Aqajani
    Hosein Aqajani almost 7 years
    thanks, Is there any similar approach to set font for a tab title in jTabbedPane?