Я обнаружил небольшую ошибку в JavaFX TabPane
и ищу обходной путь. Я использую JavaFX 13.0.1.
Как это происходит:
DragPolicy TabPane
должен быть установлен на TabPane.TabDragPolicy.REORDER
.
Вы можете перемещаться между вкладками с помощью сочетаний клавиш CTRL + TAB
& CTRL + SHIFT + TAB
.
Однако, если я перетащу, скажем, последнюю вкладку в крайнее левое положение и верну ее в положение, в котором она находилась (чтобы ничего не изменилось), эти сочетания клавиш испорчены - больше не указывают на правильные следующие / предыдущие вкладки.
Вы сможете воспроизвести его просто с помощью следующего кода:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Test extends Application {
@Override
public void start(Stage primaryStage) {
TabPane tabPane = new TabPane();
tabPane.setTabDragPolicy(TabPane.TabDragPolicy.REORDER);
tabPane.getTabs().add(new Tab("First"));
tabPane.getTabs().add(new Tab("Second"));
tabPane.getTabs().add(new Tab("Third"));
tabPane.getTabs().add(new Tab("Fourth"));
tabPane.getTabs().add(new Tab("Fifth"));
StackPane root = new StackPane();
root.getChildren().add(tabPane);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("TabPane bug");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}