Я создал программное обеспечение, которое генерирует карты для определенной карточной игры.Я не изменял код некоторое время, потому что он всегда работал правильно.Однако недавно кто-то использовал его в Windows 7, и у него возникли некоторые проблемы (я тестировал программу только на Windows 10) Теперь я также протестировал его на Mac, и есть также некоторые проблемы.
Программа использует некоторыепользовательские шрифты (файлы .ttf), но они не показывают, как они должны работать в Windows 7 и MacOS.В окне 7 ничего из этого не отображается, однако, если я нажимаю кнопку, а затем перетаскиваю ее, отображается символ. В некоторых случаях символ отображается при наведении курсора (кнопка не имеет настраиваемой функции onDrag или настроек наведения) В MacOS некоторыесимволов из пользовательского шрифта не отображаются.
(тесты были выполнены с использованием java 8u172)
Как это должно выглядеть (Windows 10 64 бит)
Как это на самом деле выглядит в Windows 7 SP1, 64-битный
Как это на самом деле выглядит в MacOS High Sierra 10.13.5
Так выглядит сгенерированная карта, независимо от ОС
Я не совсем понимаю, почему шрифт не отображается должным образом в 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>