【发布时间】:2021-06-08 19:15:04
【问题描述】:
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World!");
Button btn = new Button();
btn.setText("Hello");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
}
在控制台上获取以下第一行:
35026:1978749] CoreText 注意:客户端请求的名称“.SFNS-Regular”,它将获得 Times-Roman 而不是预期的字体。所有系统 UI 字体访问都应通过适当的 API,例如 CTFontCreateUIFontForLanguage() 或 +[NSFont systemFontOfSize:]。 2021-06-09 00:00:46.808 java[35026:1978749] CoreText 注意:在 CTFontLogSystemFontNameRequest 上设置断点以进行调试。 2021-06-09 00:00:46.815 java[35026:1978749] CoreText 注意:客户端请求的名称“.SFNS-Regular”,它将获得 Times-Roman 而不是预期的字体。所有系统 UI 字体访问都应通过适当的 API,例如 CTFontCreateUIFontForLanguage() 或 +[NSFont systemFontOfSize:]。 2021-06-09 00:00:46.982 java[35026:1978817] CoreText 注意:客户端请求的名称“.SFNS-Regular”,它将获得 Times-Roman 而不是预期的字体。所有系统 UI 字体访问都应通过适当的 API,例如 CTFontCreateUIFontForLanguage() 或 +[NSFont systemFontOfSize:]。
操作系统:macOS javafx-sdk-11.0.2 JDK 11
【问题讨论】:
-
我没有答案,只是一个建议。默认情况下,JavaFX 使用映射到物理字体的逻辑字体,这些映射也依赖于默认的locale。我没有 MacOS,但您应该检查 Java 尝试加载的物理字体,然后检查该字体是否可以显示
Hello World!。
标签: java javafx java-11 javafx-11