私は(JavaFxアプリで)さまざまなタブを持つタブペインを持っています。ドラッグ アンド ドロップ機能を実装して、タブをステージの外にドラッグしたいと考えています。新しいウィンドウを生成できるように (Google Chrome のように)。
助けてくれてありがとう。
私は(JavaFxアプリで)さまざまなタブを持つタブペインを持っています。ドラッグ アンド ドロップ機能を実装して、タブをステージの外にドラッグしたいと考えています。新しいウィンドウを生成できるように (Google Chrome のように)。
助けてくれてありがとう。
ここにアプローチがあります。コンテンツを新しいウィンドウに取り出す部分にすぎませんが、それは始まりです。
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だったと思います。