相关疑难解决方法(0)

传递参数JavaFX FXML

如何将参数传递给javafx中的辅助窗口?有没有办法与相应的控制器通信?

例如:用户从a中选择一个客户,TableView并打开一个新窗口,显示客户的信息.

Stage newStage = new Stage();
try 
{
    AnchorPane page = (AnchorPane) FXMLLoader.load(HectorGestion.class.getResource(fxmlResource));
    Scene scene = new Scene(page);
    newStage.setScene(scene);
    newStage.setTitle(windowTitle);
    newStage.setResizable(isResizable);
    if(showRightAway) 
    {
        newStage.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

newStage将是新窗口.问题是,我找不到告诉控制器在哪里查找客户信息的方法(通过传递id作为参数).

有任何想法吗?

parameters dependency-injection javafx parameter-passing fxml

180
推荐指数
4
解决办法
16万
查看次数

在JavaFx中应用MVC

我是GUI世界/ OO设计模式的新手,我想在我的GUI应用程序中使用MVC模式,我已经阅读了一些关于MVC模式的教程,模型将包含数据,View将包含可视元素和控制器将在视图和模型之间建立联系.

我有一个包含ListView节点的View,ListView将使用Person Class(Model)填充名称.但我对一件事情有点困惑.

我想知道的是,如果从文件加载数据是由Controller或模型负责的?名称的ObservableList:它应该存储在Controller还是Model中?

java model-view-controller user-interface javafx

26
推荐指数
1
解决办法
5万
查看次数

如何确定我的 JavaFX 应用程序所需的 FXML 文件、CSS 文件、图像和其他资源的正确路径?

我的 JavaFX 应用程序需要能够找到 FXML 文件以加载它们FXMLLoader,以及样式表(CSS 文件)和图像。当我尝试加载这些时,我经常遇到错误,或者我尝试加载的项目在运行时根本没有加载。

对于 FXML 文件,我看到的错误消息包括

Caused by: java.lang.NullPointerException: location is not set
Run Code Online (Sandbox Code Playgroud)

对于图像,堆栈跟踪包括

Caused by: java.lang.IllegalArgumentException: Invalid URL: Invalid URL or resource not found
Run Code Online (Sandbox Code Playgroud)

如何找出这些资源的正确资源路径?

javafx

18
推荐指数
1
解决办法
3861
查看次数

动态创建时如何知道点击了哪个menuItem?

这是我的观点:

public class AdminPage extends VBox {
    public AdminPage() {
        Menu menu = new Menu("Optional");
        int i;
        ArrayList<String> items = new ArrayList<>();
        items.add("Product");
        items.add("Profile");
        items.add("Home");

        for (i = 0; i < items.size(); i++) {
            menu.getItems().add(new MenuItem(items.get(i)));
        }
        MenuBar menuBar = new MenuBar();
        menuBar.getMenus().add(menu);

        this.getChildren().addAll(menuBar);
        this.setAlignment(Pos.TOP_LEFT);
    }
}

Run Code Online (Sandbox Code Playgroud)

我想编写控制器,但问题是我如何知道点击了哪个项目。

菜单是这样的:

Optional
----------
Product
Home
Run Code Online (Sandbox Code Playgroud)

我希望如果我单击产品,则会打开另一个表单。我认为这是通过点击操作完成的。

java javafx

0
推荐指数
1
解决办法
55
查看次数