Java Swing - How to change the font size on a JPanel's TitledBorder?
border, font-size, java, swing, title
Solution
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.1
Problem
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?