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

标签 java swing border title font-size

我需要能够以编程方式更改我的 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 中对此进行了测试 enter image description here

关于Java Swing - 如何更改 JPanel 的 TitledBorder 上的字体大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15260484/

相关文章:

java - 用不同的方法向java程序添加计数器

java - 要获取 JVM GC 日志,如何使用 -verbose :gc and -XX:+PrintGCDetails differ

java - 在对话框或框架内安装动态 JTable 的最佳规则是什么?(高度问题)

css - 删除不在数据表上的所有面板网格上的所有边框

c# - 图像覆盖 iTextSharp 中的表格单元格边框

Java - 我可以使用空的 catch 语句吗?

java - 如何从另一个 java 类运行测试类

java - 克隆 Swing 组件

java - 为什么从不调用 getToolTipText?

html - 如何创建在所有浏览器上看起来都一样的虚线边框?