3

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

谢谢您的帮助。

4

2 回答 2

0

您应该检查 Tom Schindl 在他的博客上显示的解决方案

于 2014-05-27T06:12:50.557 回答
-1

这是一种方法,它只是将内容带入新窗口的一部分,但它是一个开始。

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();

                }

            }
        });
}

基本上你必须用这个方法创建选项卡,如果事件的接收者不支持拖动,也就是说,如果它没有做任何特定的事情,那么你用选项卡的内容创建一个新的stackPane。

*顺便说一下,窗格的内容是 StackPane。

于 2013-10-10T13:55:49.500 回答