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

JavaFX fxml加载程序无法正常工作

缑永年
2023-03-14

testFX。java:

public class testFX extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        try{
            FXMLLoader loader = new FXMLLoader();
            loader.setLocation(getClass().getResource("/testFX/view/test.fxml"));
            System.out.println("after set location");
            //PROBLEM
            AnchorPane root = (AnchorPane)loader.load();
            System.out.println("Does not happen");
            testFXController listController = loader.getController();
            listController.start();
            Scene scene = new Scene(root, 200, 300);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();
        }
        catch (Exception ex){
            System.out.println("Error");
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
} 

testFXController.java:

package testFX.view;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.ListView;

public class testFXController {
    @FXML ListView<String> listView;
    private ObservableList<String> obsList;

    public void start() {
        // create an ObservableList
        // from an ArrayList
        obsList = FXCollections.observableArrayList("Giants", "Patriots", "Jaguars");
        listView.setItems(obsList);
    }
}

测验fxml:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.control.ListView?>
<AnchorPane xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1"
    fx:controller="view.testFXController">
    <ListView fx:id="listView" 
        AnchorPane.topAnchor="10"
        AnchorPane.leftAnchor="10" 
        AnchorPane.rightAnchor="10"
        AnchorPane.bottomAnchor="10" />
</AnchorPane>

当我运行testFX. java时,系统打印:

after set location  
Error

这是教授的代码,我似乎无法运行它。我意识到主要问题在代码AnchorPane根=(AnchorPane)加载程序中。load()


共有2个答案

彭洲
2023-03-14

fxml文件中的fx:controller属性是罪魁祸首。

为我工作。

因此,fx:控制器="testFX.view.testFXController"应该适合您。

麹培
2023-03-14

值fx:controller属性很可能错误(除非您的控制器类与发布的不同)

要使用的控制器:testFX。看法testFXController

fxml中的属性值:view.testFXController ! = testFX.view.testFXController

假设没有其他错误不能用问题中的信息重现,修复属性值应该有效。

 类似资料:
  • 问题内容: 我编写此代码是为了使用HTML中的元素将图像上传到本地Apache Web服务器。该记录为不为空,但为什么是完全空的? 这是我在本地网络服务器上的 将记录所有PHP文件的代码行,而不是返回的结果 问题答案: 仅记录formData对象时,它始终返回空,因为您无法记录formData。 如果您只需要在发送前对其进行记录,则可以使用它来获取formData对象中的条目

  • 问题内容: 我最近将项目升级到grails 2.3.0。一切正常,除非我每次更改代码时都遇到自动重装无法正常工作的问题。这包括所有项目人工制品- 控制器,域,服务,gsps,css和javascript文件。 我的较早版本的grails可以正常工作,并且每次进行更改时都会重新加载和重新编译。 我知道这个问题很普遍,我已经搜寻了吉拉(Jira),纳布尔(Nabble),在这里呆了好几天,但我发现没有

  • 问题内容: 我正在尝试自动预加载模型,但是这样做很困难。 这些是我正在使用的模型: 这是我正在执行的用于测试自动预加载功能的代码: 这两个打印的输出是: 当我可以手动很好地预加载模型时,为什么通过db.First(…)获取模型不会自动预加载? 问题答案: 首先,我建议阅读文档。 这里有点解释。看来您使用旧版本的可能性更大。更新的文档说明了如何使用此标记,默认情况下将其设置为true。因此,如果您想

  • 问题内容: 我正在尝试将OpenCV与Hadoop一起使用。下面是我的代码。我只是在测试OpenCV库是否可以在Hadoop上正常工作,即当我在Hadoop 函数中运行OpenCV代码时 。 我在互联网上进行搜索,发现了一些在Hadoop中添加OpenCV本机库()的方法。我尝试了一些方法,但是没有用。例如本教程。 它说添加到文件。但这没有用。我收到这个错误 最后,我将OpenCV本机库()添加到

  • 问题内容: 这似乎是最容易的事情,但它没有用。在普通的浏览器中,.html和.js文件可完美运行,但在Chrome扩展程序中,该功能无法执行应有的功能。 .js文件: .html文件: 因此,基本上,一旦用户单击“ hyhy”,“ ha”应更改为“ xxx”。再说一次- 它在浏览器中完美运行,但在扩展程序中不起作用。你知道为什么吗?以防万一我还要在下面附加manifest.json。 提前致谢!

  • 问题内容: 我是Spring MVC的新手,我正在尝试编写一个简单的Web应用程序以开始使用Spring。 这是我所拥有的: web.xml: main-servlet.xml LoginController.java index.jsp Login.jsp index.jsp可以很好地启动,但是当我单击导航到登录页面时,我得到404。我使用的是Tomcat7。由于想法不清,看来Dispatche