如何在使用FXML设计的JavaFX中创建内部弹出窗口

时间:2015-05-26 02:45:09

标签: javafx javafx-2 javafx-8 fxml

我有一个FXML文件,我用它来允许用户在请求时输入。现在我只是把它放在一个新阶段并做Stage.show()。我希望它不会出现在新窗口中,并且表现得更像ContextMenu

查看ContextMenu类,我似乎无法根据FXML文件设置内容。有没有办法用ContextMenuPopup或其他一些我不知道的类来做到这一点?

2 个答案:

答案 0 :(得分:5)

虽然这个库非常好,但我想要一些简单的东西,不需要第三方下载。我想出了这个:

Popup popup = new Popup();
CustomController controller = new CustomController();
FXMLLoader loader = new FXMLLoader(getClass().getResource(fxmlfile));
loader.setController(controller);
popup.getContent().add((Parent)loader.load());

问题是我没有意识到方法Parent可以将Node视为Popup#getContent#add

答案 1 :(得分:0)

ControlsFX有一个你可能喜欢的PopOver控件。 PopOver可以使用任何Node作为其内容,因此您只需创建一个popover,从FXML加载一个节点并将popover的内容设置为该节点。