3

私は(JavaFxアプリで)さまざまなタブを持つタブペインを持っています。ドラッグ アンド ドロップ機能を実装して、タブをステージの外にドラッグしたいと考えています。新しいウィンドウを生成できるように (Google Chrome のように)。

助けてくれてありがとう。

4

2 に答える 2

-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 に答える