java - 同一字体的多个实例化

标签 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(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(....));

现在,执行上述语句后创建的任何标签都将使用您的新字体创建。

关于java - 同一字体的多个实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29474262/

相关文章:

java - 带有外键和枚举的 JPA 复合键

java - 为什么 long 在 Java 中被转换为 double?

Java Map之map(嵌套map)排序

swing - 使用 Eclipse 的 JNLP 文件

c++ - Qt - 动态访问元素

java - Maven:经常从远程存储库下载元数据 xml 文件

java - 检查 Java SE 中表格单元格中的 jcheckbox 是否被选中

java - 默认选择节点

java - Swing:向组件及其所有装饰添加监听器?

c# - 文本框滞后于大量数据? (银光 4)