Java 同一字体的多个实例化

Java 同一字体的多个实例化,java,swing,user-interface,fonts,Java,Swing,User Interface,Fonts,在我的GUI代码中,有几十个语句序列实例,类似于: aLabel = new JLabel("Label #1", JLabel.CENTER); aLabel.setFont(new Font("Arial", BOLD, 14)); panelOne.add(aLabel); aLabel = new JLabel("Label #2", JLabel.CENTER); aLabel.setFont(new Font("Arial", BOLD, 14)); panelOne.add(aLa

在我的GUI代码中,有几十个语句序列实例,类似于:

aLabel = new JLabel("Label #1", JLabel.CENTER);
aLabel.setFont(new Font("Arial", BOLD, 14));
panelOne.add(aLabel);
aLabel = new JLabel("Label #2", JLabel.CENTER);
aLabel.setFont(new Font("Arial", BOLD, 14));
panelOne.add(aLabel);
我的问题:这是不是因为我每次都实例化一个新的
Font
对象而浪费了资源?以下方法是否可以接受/首选

Font commonFont = new Font("Arial", BOLD, 14);
aLabel = new JLabel("Label #1", JLabel.CENTER);
aLabel.setFont(commonFont);
panelOne.add(aLabel);
aLabel = new JLabel("Label #2", JLabel.CENTER);
aLabel.setFont(commonFont);
panelOne.add(aLabel);

谢谢

是的,最好是共享这样的资源

如果要更改应用程序中的所有标签,可以使用UIManager设置默认字体:

UIManager.put("Label.font", new Font(....));
现在,执行上述语句后创建的任何标签都将使用新字体创建。

“以下方法是否可以接受/首选?”是。它更易于维护。你也可以考虑调整PLAF。OTOH
Font commonFont=新字体(“Arial”,粗体,14)最好写成
Font commonFont=新字体(Font.SANS\u SERIF,粗体,14)