当前位置: 首页 > 知识库问答 >
问题:

如何显示JavaFX应用程序加载的FXML文件上的元素?

萧霍英
2023-03-14


我需要了解如何显示主javaFX应用程序加载的FXML文件中插入的元素,我的javaFX应用程序的主是:

// imports omitted
public class Main extends Application {
@Override
public void start(Stage window) throws IOException {
    Parent root = FXMLLoader.load(getClass().getResource("Standard.fxml"));
    Scene mainGraphic = new Scene(root,500,500);

    window.setTitle("Prova con FXML");
    window.setMinHeight(500);
    window.setMinWidth(500);
    window.setScene(mainGraphic);
    window.show();
    }
}

该文件可以正常工作并正确加载FXML文件standard.FXML,问题是它没有显示顶部矩形,这是FXML文件:

// imports omitted    
<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.myname.mypackage.Controller">
    <stylesheets>
        <URL value="@Standard.css"/>
    </stylesheets>

    <Rectangle id="ParteSuperiore"/>
</AnchorPane>

我显然已经创建了CSS文件,并用我想要的属性对元素进行了样式化,这就是CSS:

#AnchorPane {
    -fx-background-color: rgb(224, 246, 255);
}

#ParteSuperiore {
    -fx-fill: rgb(255, 145, 28);
    -fx-arc-height: 100px;
    -fx-arc-width: 100px;
}

这个档案有什么问题?我只能看到锚窗的底色!我试图将矩形放入 元素中,但我仍然只看到锚窗格的背景颜色,而看不到矩形!我应该使用区域而不是矩形吗?如果是,我如何给它宽度和高度?在JavaFX CSS参考中,它没有给我设置宽度和高度的指令,比如矩形的-FX-arc-height

共有1个答案

微生德泽
2023-03-14

您似乎混淆了矩形archeight/arcwidt属性和高度/宽度属性。根据文档,archeight属性:

定义矩形四角处圆弧的垂直直径。当且仅当弧宽和弧高属性均大于0.0时,矩形将具有圆角。

高度属性:

定义矩形的高度。

arcwidthwidth属性具有类似的文档。

// imports omitted    
<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.myname.mypackage.Controller">
    <stylesheets>
        <URL value="@Standard.css"/>
    </stylesheets>

    <Rectangle id="ParteSuperiore" width="100" height="100"/>

</AnchorPane>

1。看看执行情况就证实了这一点。与arcwidtharcheight不同,widtharcheight都不是styleableproperty实例

 类似资料:
  • 当我使用Application class创建一个新的Netbeans Projekt(JavaFX FXML应用程序)时,我会像往常一样收到一个模板(一个.FXML、一个controller类和主应用程序)。当我尝试运行它时,我得到一个异常: 这是我的start()方法: 而且URL是空的。第25行是部分。fxml文档与字符串tell的名称完全相同,并且与主应用程序类在同一个包中。我没有更改任何

  • 我正在尝试创建javafx applet,使用IntelliJ idea。构建之后,我得到了三个文件:.jar、.jnlp和.html。如果我启动jar所有工作都很好,但是如果我尝试使用jnlp或html运行app,它会抛出异常: 为什么会这样?Jar正好包含所需的位于指定路径的fxml。 Java: FXML: 我做错了什么?请帮帮忙。

  • 我一直在做一个桌面应用程序,在那里我需要使用JavaFX。我在使用Scene Builder构建的eclipse上的JavaFX项目中创建了各种FXML文件。除了这个讨厌的文件(fxmlimglist.FXML)外,我加载任何FXML文件都没有问题。 其主要思想是,当按下一个按钮时,会出现一个新窗口。下面是该按钮的事件处理程序的代码: package explorer中的项目如下所示: https

  • 或者 我还尝试在没有文件的情况下实现这一点,结果成功了。 如何添加带有文件的应用程序图标?

  • 因此,在我尝试编写JavaFX教程和FXML示例时。但是,每当我在.fxml文件中向GridPane中添加一些内容时,程序就会崩溃。它打开一个普通的GridPane,如果没有其他东西放在其中。 } 究竟是什么原因导致它坠毁?

  • 我正在用JavaFX构建一个应用程序,并为布局加载FXML文件。开始时,我的所有.fxml文件都在java类路径中。 由于我正在制作一个游戏引擎,所以我决定将所有的东西都移到类路径之外,所以我现在有了一个文件系统,如下所示: 这就是我加载FXML的方式 它看起来可能并不漂亮,但它可以工作(system.getProperty(“jdir”)只是.jar在光盘上的位置)。Java查找每个文件(FXM