为我所有的Jlabels Jtextarea等设置通用字体尺寸,等等



你好,我有一个奇怪的问题。

我想知道是否以及如何为我的jlabels,textareas以及基本上可以在面板上进行的任何文本进行通用设置。我一直在每个标签上编写字体尺寸,以使其保持一致。但是面板正在增长,我不想在每个标签上硬编码字体大小。

这是我正在使用的尺寸,并且想在我的所有标签上使用。

titlelb.getFont().deriveFont( Font.BOLD, (float) 20.); 
lb1.getFont().deriveFont( Font.PLAIN, (float) 11.);
lb2.getFont().deriveFont( Font.BOLD, (float) 11.);
textArea.setFont( Font.decode( "Arial-PLAIN-11"));

我只是想知道是否有一种方法可以普遍设置它,如果每个面板都可以继承这些特定尺寸,那么我真的不知道该如何处理标签的尺寸,这就是为什么我在这里问。预先感谢您。

您可以通过调用UIManager.put("nameOfFontProperty", new Font(Font.DIALOG, FONT.PLAIN, sizeInPixel));来更改所需每个组件中的uimanager中的字体属性。您可以在此处找到带有默认属性的列表。

使所有标签的字体大小为20px的一个示例DO:

UIManager.put("Label.font", UIManager.getFont("Label.font").deriveFont(20.0));
SwingUtilities.updateComponentTreeUI(yourJFrame);

为您想要在面板中具有固定字体的任何Jcomponent子类编写自定义包装程序类,并在构造函数中添加字体代码。例如:

public class JLabelCustom extends JLabel {
    public JLabelCustom(...) {
        super();
        // Font setting code here
        .getFont().deriveFont( Font.BOLD, (float) 20.); 
        .getFont().deriveFont( Font.PLAIN, (float) 11.);
        .getFont().deriveFont( Font.BOLD, (float) 11.);
        this.setFont( Font.decode( "Arial-PLAIN-11"));
    }
}

在您想要标准化字体的任何地方使用自定义的Jcomponent。

您可以制作一个自动设置所有内容的子类。类似'

class UniversalJPanel extends JPanel{
    public UniversalJPanel(){
        super();
        this.setFont(...);
        }
    }

然后,您可以使用它而不是常规jpanel。Jlabel,Jtextarea等也是如此

最新更新