【发布时间】:2019-12-06 15:08:54
【问题描述】:
我的 FXML 文件中的 SceneBuilder 中有一个 ImageView,我已经加载到文件中,它显示在 SceneBuilder 中,但它在我的应用程序中不起作用。我的文件结构如下:mainFolder/src/froggerClasses/ 和 mainFolder/resources/ 其中资源是图片所在的位置,我的 FXML 文件在 mainFolder/resources/fxml/
我为他们准备的 FXML 文件是:
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="froggerClasses.ScorePageController">
<children>
<ImageView fitHeight="800.0" fitWidth="600.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../highScoresMenu.png" />
</image>
</ImageView>
<TextArea fx:id="scoreTextArea" editable="false" layoutX="228.0" layoutY="253.0" prefHeight="411.0" prefWidth="122.0" stylesheets="@../css/buttonStyles.css" />
<Button fx:id="mainMenuButton" layoutX="221.0" layoutY="680.0" mnemonicParsing="false" onAction="#goBackToMainMenu" prefHeight="66.0" prefWidth="136.0" stylesheets="@../css/buttonStyles.css" text="Main Menu" />
</children>
</Pane>
我之前通过使用绝对路径设法解决了这个问题,但我不想要绝对路径,因为它有点硬编码。
我在文件夹mainFolder/resources/fonts 中也有一个字体,我尝试在我的 CSS 中使用它作为按钮,但它没有设置。我试过在我的 CSS 中这样做:
@font-face
{
src: url("PressStart2P.ttf"),
}
.button
{
-fx-font-family: "Press Start 2P";
}
以及在我的一个扩展应用程序的类中,但它仍然不起作用。
@Override
public void start(Stage primaryStage) throws IOException
{
Font.loadFont(getClass().getResourceAsStream("fonts/PressStart2P.ttf"), 16);
Parent root = FXMLLoader.load(getClass().getResource("/fxml/startMenu.fxml"));
primaryStage.setScene(new Scene(root));
primaryStage.setTitle("Frogger: The Game");
primaryStage.show();
}
我在这里查看了关于这两个问题的类似主题,并从他们两个那里得到了想法并尝试将它们应用到这里,但它仍然不起作用,我不知道为什么。可能是什么问题?
感谢任何帮助,谢谢。
【问题讨论】: