【问题标题】:Javafx drag and drop TabPaneJavafx 拖放 TabPane
【发布时间】:2013-03-09 17:35:43
【问题描述】:

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

感谢您的帮助。

【问题讨论】:

  • 欢迎来到 Stackoverflow。你能告诉我们你走了多远吗?
  • 我也很感兴趣有没有实现的例子。
  • 如果你解决了问题,你能给我们看一些示例代码吗?
  • 你有什么问题?

标签: drag-and-drop javafx


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    这是一个方法,它只是将内容移到新窗口中的一部分,但它是一个开始。

    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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      相关资源
      最近更新 更多