Как исправить объект не может быть преобразован в javafx.scene.Node - PullRequest
3 голосов
/ 14 января 2020

Я пытаюсь загрузить свой файл f xml, который в порядке и загружен (я пробовал его с моим основным классом). Но, когда я попытался установить содержимое в контроллере, произошла ошибка:

несовместимые типы: java .lang.Object не может быть преобразован в javafx.scene.Node в addNewCategor ie .getDialogPane () setContent (fxmlLoader.load ()).

Мой класс контроллеров:

@FXML
private BorderPane mainBorder;

@FXML
public void handle_the_addition_of_newCategorie(){
    Dialog<ButtonType> addNewCategorie = new Dialog<>();
    addNewCategorie.setTitle("Add Categorie");
    addNewCategorie.initOwner(mainBorder.getScene().getWindow());
    FXMLLoader fxmlLoader = new FXMLLoader();
    fxmlLoader.setLocation(getClass().getResource("/AddNewCategorie.fxml"));
    try{
        addNewCategorie.getDialogPane().setContent(fxmlLoader.load());
    }catch (IOException E){
        System.out.println("IOEXception : "+E.getMessage());
    }
    addNewCategorie.getDialogPane().getButtonTypes().add(ButtonType.CLOSE);
    addNewCategorie.show();
}

Мой файл f xml:

<?import javafx.scene.control.Button?>

<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<BorderPane fx:id="mainBorder" fx:controller="sample.Controller"
            xmlns:fx="http://javafx.com/fxml" style="-fx-background-color:#485460">
    <center>
        <HBox spacing="20" alignment="CENTER">
            <Button text="Add new Categorie" style="-fx-background-color:#2ecc71; -fx-text-fill:white" onMouseClicked="#handle_the_addition_of_newCategorie"/>
        </HBox>
    </center>
</BorderPane>

1 Ответ

0 голосов
/ 14 января 2020

пришлось изменить это:

addNewCategorie.getDialogPane().setContent(fxmlLoader.load());

на:

addNewCategorie.getDialogPane().setContent((Node)fxmlLoader.load());

и:

fxmlLoader.setLocation(getClass().getResource("/AddNewCategorie.fxml"));

К:

fxmlLoader.setLocation(getClass().getClassLoader().getResource("/AddNewCategorie.fxml"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...