TableView列位置和TabbedPane选项卡从右侧开始而不是在JavaFX中左侧开始?

时间:2018-01-10 17:28:27

标签: tableview javafx-8

我一直在搜索几个小时,但找不到任何方法让TabbedPane的tableView列和标签从右侧而不是左侧开始。 正如我们在图片中看到的那样,java默认从左侧到右侧创建它们,并在右侧留下空白区域。有没有办法做到这一点反过来呢? 谢谢 see image here

1 个答案:

答案 0 :(得分:0)

使用setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);

import javafx.application.Application;
import javafx.geometry.NodeOrientation;
import javafx.scene.Scene;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.stage.Stage;

public class NodeOrientationTest extends Application {

    @Override
    public void start(Stage primaryStage) {
        TabPane tabPane = new TabPane();
        tabPane.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);
        Tab tab1 = new Tab("Tab 1");
        Tab tab2 = new Tab("Tab 2");
        tabPane.getTabs().addAll(tab1, tab2);

        TableView<Void> table = new TableView<>();
        table.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);
        table.getColumns().add(new TableColumn<Void, Void>("Column 1"));
        table.getColumns().add(new TableColumn<Void, Void>("Column 2"));

        tab1.setContent(table);

        Scene scene = new Scene(tabPane, 800, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

enter image description here

请注意,默认情况下,表视图将从其父视图继承此视图,因此您可以省略对table.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);的调用并获得相同的结果。 (或者只是在场景中设置它。)