我有一个FXML文件,我用它来允许用户在请求时输入。现在我只是把它放在一个新阶段并做Stage.show()
。我希望它不会出现在新窗口中,并且表现得更像ContextMenu
。
查看ContextMenu
类,我似乎无法根据FXML文件设置内容。有没有办法用ContextMenu
或Popup
或其他一些我不知道的类来做到这一点?
答案 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的内容设置为该节点。