JavaFX:使用控制器更改场景

时间:2019-04-19 09:43:00

标签: java javafx controller

我有一个菜单fxml和controller,其中包含一些可能的选项。根据选择的按钮,窗口将显示一个新列表(例如,customer按钮显示一个新场景中的客户列表)。我只是似乎无法弄清楚如何使用控制器和fxmlLoaders创建新场景。

我尝试在菜单的personButtonHandle()方法中创建CustomerController的新实例,但这会发出“忽略新实例”警告。

运行该应用程序是可行的,但是单击CustomerButton会导致“ javafx.fxml.LoadException:已指定根值。”

主菜单

public Menu(DomainController dc) {
    this.dc = dc;

    FXMLLoader loader = new FXMLLoader(getClass().
            getResource("Main.fxml"));
    loader.setRoot(this);
    loader.setController(this);
    try {
        loader.load();
    } catch (IOException ex) {
        throw new RuntimeException(ex);
    }
}
private void handleBtnCustomers(ActionEvent event) {
        CustomerController cc = new CustomerController(this.dc);

}

CustomerController

public CustomerController(DomainController dc) {
        this.dc = dc;

        FXMLLoader loader = new FXMLLoader(getClass().
                getResource("Customers.fxml"));
        loader.setRoot(this);
        loader.setController(this);
        try {
            loader.load();
        } catch (IOException ex) {
            throw new RuntimeException(ex);
        }
    }

0 个答案:

没有答案