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中对此进行了测试