Javafx css字体无法在Linux中加载[已关闭]

qmelpv7a  于 2023-02-06  发布在  Java
关注(0)|答案(1)|浏览(157)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
7小时前关闭。
Improve this question
我正在使用JavaFX开发一个多平台桌面应用程序,我正在使用Windows 10和NetBeans 8.2以及JavaFX 18。在Windows中,我的应用程序运行良好。当我尝试在Linux上运行它时,它根本无法加载我的CSS样式。我尝试更改按钮文本样式,但它没有更改,始终设置默认字体。我在单击主题2/后创建了两个主题按钮主题1和主题2theme 1按钮字体不变。
---呼叫主题

if (themeKeyValue == 0) {
            scene.getStylesheets().add(theme1Url);
            scene.getStylesheets().remove(theme3Url);
            if (!scene.getStylesheets().contains(theme1Url)) {
                scene.getStylesheets().add(theme1Url);
            }
        } else  {
            scene.getStylesheets().remove(theme1Url);
            if (!scene.getStylesheets().contains(theme3Url)) {
                scene.getStylesheets().add(theme3Url);
            }
        }

我尝试了这些步骤:
步骤1:〉〉〉〉此步骤在非Linux的Windows上运行

.

button-toolbar{
        -fx-font-family: 'Microsoft Sans Serif';
        -fx-font-size:180pt;
        -fx-background-repeat: no-repeat;
        -fx-background-position: left;
        -fx-background-color: transparent;
        -fx-text-fill: white;
        -fx-background-size: 17;
        -fx-padding:3 10 3 20;    
        -fx-setStrokeWidth: 132.0;
    }

步骤2〉〉无法在Linux上运行

@font-face {
    
    src: url(“styles.font/micross.ttf”);
}
.button-toolbar{
    -fx-font-family: 'Microsoft Sans Serif';
    -fx-font-size:180pt;
    -fx-background-repeat: no-repeat;
    -fx-background-position: left;
    -fx-background-color: transparent;
    -fx-text-fill: white;
    -fx-background-size: 17;
    -fx-padding:3 10 3 20;    
    -fx-setStrokeWidth: 132.0;
}

步骤3 [不起作用]

@font-face{
    font-family : 'Microsoft Sans Serif';
    src: url("../font/micross.ttf");
    
  src: local('Microsoft Sans Serif'), local('Microsoft Sans Serif-Regular'), url("../font/micross.ttf") format('ttf');
}

    .button-toolbar{
        -fx-font-family: 'Microsoft Sans Serif';
        -fx-font-size:180pt;
        -fx-background-repeat: no-repeat;
        -fx-background-position: left;
        -fx-background-color: transparent;
        -fx-text-fill: white;
        -fx-background-size: 17;
        -fx-padding:3 10 3 20;    
        -fx-setStrokeWidth: 132.0;
    }

指导我为什么这些样式不能在Linux中加载?

v9tzhpje

v9tzhpje1#

使用自定义字体

如果需要使用另一台计算机上可能未安装的唯一字体,则可以在JavaFX应用程序中包括TrueType字体(.ttf)或OpenType(.otf)。
要包括TrueTypeOpenType字体作为定制字体,请按下列步骤操作:
1.在项目文件夹中创建resources/fonts文件夹。
1.将字体文件复制到项目的fonts子文件夹中。
1.在源代码中,加载自定义字体,如Example 39-9所示。
示例39-9
text.setFont(Font.loadFont("file:resources/fonts/isadoracyr.ttf", 120));这段代码为Figure 39-2中的文本提供了字体。

查看此处了解完整详细信息

cssref函数
文本设置

它为我工作

label.setFont(Font.loadFont(new FileInputStream("src/main/resources/Rochester-Regular.ttf"), 80));

相关问题