Drag and drop Javafx拖放选项卡窗格

Drag and drop Javafx拖放选项卡窗格,drag-and-drop,javafx,Drag And Drop,Javafx,我(在JavaFx应用程序中)有一个带有不同选项卡的选项卡窗格。我想实现一个拖放功能,将选项卡拖到后台之外。这样它就可以生成一个新窗口(如谷歌浏览器) 感谢您的帮助。这里有一个提示,它只是将内容带到新窗口的一部分,但这只是一个开始 private Tab createTab(String text) { final Tab tab = new Tab(); final Label label = new Label(text); tab.setGr

我(在JavaFx应用程序中)有一个带有不同选项卡的选项卡窗格。我想实现一个拖放功能,将选项卡拖到后台之外。这样它就可以生成一个新窗口(如谷歌浏览器)


感谢您的帮助。

这里有一个提示,它只是将内容带到新窗口的一部分,但这只是一个开始

private Tab createTab(String text) {
        final Tab tab = new Tab();
        final Label label = new Label(text);
        tab.setGraphic(label);
        label.setOnDragDone(new EventHandler<DragEvent>() {

            @Override
            public void handle(DragEvent event) {
                if (event.getAcceptedTransferMode() == null) {
                    final StackPane content = (StackPane) tab.getContent();
                    tab.setContent(null);
                    Stage stage = new Stage();
                    stage.setScene(new Scene(content));
                    stage.show();
                    tab.getTabPane().getTabs().remove(tab);

                    event.consume();

                }

            }
        });
}
private选项卡createTab(字符串文本){
最终选项卡=新选项卡();
最终标签=新标签(文本);
tab.设置图形(标签);
label.setOnDragDone(新的EventHandler(){
@凌驾
公共无效句柄(DrageEvent事件){
if(event.getAcceptedTransferMode()==null){
最终StackPane内容=(StackPane)tab.getContent();
tab.setContent(空);
阶段=新阶段();
舞台场景(新场景(内容));
stage.show();
tab.getTabPane().getTabs().remove(tab);
event.consume();
}
}
});
}
基本上,您必须使用此方法创建选项卡,如果事件的接收者不支持拖动,也就是说,如果它不执行任何特定操作,那么您可以使用选项卡的内容创建一个新的stackPane


*顺便说一句,该窗格的内容是一个StackPane。

您应该检查Tom Schindl在其《欢迎使用Stackoverflow》中给出的解决方案。你能告诉我们或者告诉我们你走了多远吗?我也很感兴趣,有没有实现的例子。如果你解决了这个问题,你能给我们展示一些示例代码吗?你的问题是什么?