我一直在搜索几个小时,但找不到任何方法让TabbedPane的tableView列和标签从右侧而不是左侧开始。 正如我们在图片中看到的那样,java默认从左侧到右侧创建它们,并在右侧留下空白区域。有没有办法做到这一点反过来呢? 谢谢 see image here
答案 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);
}
}
请注意,默认情况下,表视图将从其父视图继承此视图,因此您可以省略对table.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);
的调用并获得相同的结果。 (或者只是在场景中设置它。)