Java Swing – 如何在JPanel的TitledBorder上更改字体大小?

我需要能够以编程方式更改Swing应用程序中所有组件的字体大小。 我不能以通常的方式(使用UIManager或putClientProperty)执行此操作,因为我正在使用Nimbus外观,所以使用以下方法来单独增加应用程序中每个组件的字体大小…

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

我遇到的问题是我在我的JPanel上使用TitledBorder并且(可以预见)将我的JPanel传递给上面的方法并不会调整JPanel的边框标题。

那么有什么方法可以改变边框的字体大小? (如果我能得到边框的文本,我可以创建一个新的TitledBorder(使用更大的字体),然后将其应用于JPanel的setBorder()方法……但似乎无法获得边框文本(?)。

有没有人对如何解决有任何建议?

以下对我有用:

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

我在NetBeans 6.9.1中对此进行了测试 在此处输入图像描述