2013-03-09 3 views
3

У меня (в приложении JavaFx) вкладка с разными вкладками. Я хочу реализовать функцию перетаскивания, чтобы перетащить вкладку вне сцены. Чтобы он мог создать новое окно (например, в Google Chrome).Javafx drag and drop TabPane

Спасибо за помощь.

+0

Добро пожаловать в Stackoverflow. Не могли бы вы рассказать или показать нам, как далеко? –

+0

Меня также интересует какой-либо реализованный пример. –

+0

Можете ли вы показать нам пример кода, если вы решили проблему? –

ответ

-1

Вот aproach, его просто часть извлечения контента в новое окно, но его начало.

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

       } 

      } 
     }); 
} 

В основном вы должны создать вкладку с помощью этого метода, и если получатель события не поддерживает draging, то есть, если он не делает ничего конкретно, то вы создаете новый stackPane с содержимое вкладки.

* Кстати, содержание панели было стеком.

0

Вы должны проверить решение Тома Шиндль, показанный на его Blog