我需要能够以编程方式更改我的 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 中对此进行了测试
关于Java Swing - 如何更改 JPanel 的 TitledBorder 上的字体大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15260484/