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

6

我需要能够以编程方式更改我的Swing应用程序中所有组件的字体大小。由于我正在使用Nimbus外观,因此无法使用通常的方式(使用UIManager或putClientProperty)。因此,我正在使用以下方法逐个增加应用程序中每个组件的字体大小...

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()方法应用它...但似乎无法获取边框文本?)
有人有解决方法吗?

您需要“重新验证”和“重绘”容器,可能从根窗格开始。能否提供一些示例代码? - MadProgrammer
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中进行了测试在此输入图片描述


谢谢,有没有类似的方法来设置jTabbedPane中选项卡标题的字体? - Hosein Aqajani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接