6

我需要能够以编程方式更改 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() 方法应用它......但似乎不可能得到边框文本(?)。

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

4

1 回答 1

14

以下对我有用:

    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 中对此进行了测试在此处输入图像描述

于 2013-03-07T00:19:48.593 回答