我制作了一款为某款纸牌游戏制作卡片的软件。 我暂时没有修改代码,因为它始终正常工作。 然而,最近有人在Windows 7中使用它并且他遇到了一些问题(我只在Windows 10上测试过该程序) 现在我在Mac上测试它也存在一些问题。
该程序使用一些自定义字体(.ttf文件),但它们并未显示它们应如何在Windows 7和MacOS中执行。 在窗口7中没有显示,但是如果我按下按钮然后我拖动它,则显示符号,在某些情况下,符号显示悬停时(按钮没有自定义onDrag功能或悬停设置) 在MacOS中,自定义字体中的某些字符未显示。
(测试使用java 8u172完成)
How should it Look (Windows 10 64 bits)
How it actually looks in Windows 7 SP1, 64-bit
How it actually looks in MacOS High Sierra 10.13.5
This is how the generated card looks like, regardless of the OS
我真的不知道为什么在Windows 7和MacOS中没有正确显示字体,但它在Windows 10中看起来很正常。 但是,无论操作系统如何,生成的卡都会加载字体并显示它没有任何问题。
虽然,当我加载字体来生成卡片时,我使用java代码加载它们,而不是CSS。我不知道这是否会影响,虽然我无法解释它如何根据操作系统采取不同的行动。
CSS和TTF文件位于项目源中的同一个包中
CSS Root.css
@font-face {
font-family: 'JBarrett';
src: local('JBARRETT.ttf');
}
@font-face {
font-family: 'Danmaku';
src: local('MPlantin_Danmaku.ttf');
}
#Title {
-fx-font-family: "JBarrett";
}
#Description {
-fx-font-family: "Danmaku";
}
#SymbolButton {
-fx-font-family: "Danmaku";
-fx-border-color: transparent;
-fx-background-color: transparent;
-fx-font-size: 16px;
}
DeckTextArea.css
.text-area {
text-area-background: #D9E1F0;
}
.text-area .content {
-fx-background-color: text-area-background;
}
FXML
<Button id="SymbolButton" alignment="CENTER" mnemonicParsing="false" onAction="#character_insertSymbol" text="=">
<font>
<Font name="MPlantin_Danmaku" size="16.0" />
</font>
</Button>
<TextArea id="Description" fx:id="cardDesc_txtPart1" prefHeight="200.0" prefWidth="250.0" style="-fx-background-color: #D9E1F0;" stylesheets="@CSS/DeckTextArea.css" wrapText="true">
<font>
<Font name="MPlantin_Danmaku" size="12.0" />
</font>
</TextArea>