【问题标题】:JavaFX and CSS: font wont't appear on ApplicationJavaFX 和 CSS:字体不会出现在应用程序上
【发布时间】:2022-02-11 22:49:58
【问题描述】:

昨天,我尝试嵌入自定义字体,但它以某种方式工作,不幸的是,由于错误的清理命令,我破坏了 git 项目。所以今天,我将 repo 克隆到不同的位置,并以与昨天完全相同的方式再次尝试。这没用。所以我尝试直接在资源文件夹中加载一种字体,并在资源文件夹中名为字体的另一个文件夹中加载一个字体

这是我的 CSS 文件 main.css

@font-face {
    font-family: "Font";
    src: url("font-regular.ttf");
}

@font-face {
    font-family: "Fontnew";
    src: url("fonts/font.ttf");
}

.root {
    -fx-font-family: "Fontnew";
}

我得到了这个样式表

scene.getStylesheets().add("main.css");

应用程序 100% 获得此样式表,因为 CSS 文件中负责悬停效果的其他类工作,System.out.println(scene.getStylesheets().add("main.css")); 表示在控制台中是正确的

【问题讨论】:

  • 它以某种方式工作......再次尝试与昨天完全相同的方式。它不起作用你看到了逻辑上的矛盾,是吗;)或者换句话说:你肯定在那个重要的位置做了不同的事情(很可能资源/位置查找被破坏了)。从这里我们无能为力:您必须找到那个位置。在你的鞋子里,我会尝试一个新项目,除了加载/使用自定义字体之外什么都不做。并提供一个minimal reproducible example 来说明什么没有按预期工作。
  • 不,因为昨天 font-regular 工作!然后我安装了新字体。我只是用“font.ttf”替换了url,我什么也没做! 2个字体被保存在同一个位置...... font.ttf 没有工作,但是当我再次用 font-regular.ttf 替换 font.ttf 时,它又以某种方式显示了 font-regular?今天没有任何效果
  • 所以改变是用另一种字体替换你昨天使用的字体?这不完全完全相同;)无论如何,请阅读参考的帮助页面并采取相应的行动

标签: java css javafx fonts


【解决方案1】:

在你的 Main 中试试这个。

scene.getStylesheets().add(getClass().getResource("main.css").toExternalForm());

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
  • 1970-01-01
相关资源
最近更新 更多