簡體   English   中英

JavaFX 8 Tableview具有水平滾動

[英]JavaFX 8 Tableview with horizontal scrolling

如何顯示水平滾動條,而不是將所有列壓縮到最小尺寸? 您還應該仍然可以無限制地調整列的大小(並使水平滾動條調整)。

沒有水平滾動條出現

要使列采用自己喜歡的尺寸而不使它們擠壓到可用的屏幕尺寸,可以將columnResizePolicy設置為UNCONSTRAINED_RESIZE_POLICY

tableView.setColumnResizePolicy(TableView.UNCONSTRAINED_RESIZE_POLICY); 

由於這是默認行為,因此您必須在某處將columnResizePolicy設置為CONSTRAINED_RESIZE_POLICY


更新資料

這是一個MCVE,它顯示了如何在TableView中獲得水平ScrollBar。 你可以看到,我不設置columnResizePolicy因為UNCONSTRAINED_RESIZE_POLICY默認設置。

添加MCVE以便更清晰:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

import java.util.stream.IntStream;

public class Test extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        TableView<Person> tableView = new TableView<>();
        tableView.setTableMenuButtonVisible(true);
        IntStream.range(0, 15).forEach(value -> {
            TableColumn<Person, String> tableColumn = new TableColumn<>("TableColumn" + value);
            tableColumn.setPrefWidth(100.0);
            tableView.getColumns().add(tableColumn);
        });

        IntStream.range(1, 10).forEach(value -> {
            Person person = new Person("Person" + value, value);
            tableView.getItems().add(person);
        });
        Scene scene = new Scene(new StackPane(tableView));
        stage.setScene(scene);
        stage.setWidth(500);
        stage.setHeight(500);
        stage.show();
    }

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

    private class Person {
        private String name;
        private int age;

        Person(String name, int age) {
            this.name = name;
            this.age = age;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM