如何在 JavaFX Tableview 中增加 table header 和 table 单元格的宽度

How to increase the width of table header and table cell in JavaFX Tableview

如何在 JavaFX 中增加 table header 和 table 单元格的间距。

我创建了我的 table,如下所示:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TableViewExample extends Application {

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

  @Override
  public void start(Stage primaryStage) {

    TableView tableView = new TableView();

    TableColumn<Person, String> column1 = new TableColumn<>("First Name");
    column1.setCellValueFactory(new PropertyValueFactory<>("firstName"));


    TableColumn<Person, String> column2 = new TableColumn<>("Last Name");
    column2.setCellValueFactory(new PropertyValueFactory<>("lastName"));


    tableView.getColumns().add(column1);
    tableView.getColumns().add(column2);

    tableView.getItems().add(new Person("John", "Doe"));
    tableView.getItems().add(new Person("Jane", "Deer"));

    VBox vbox = new VBox(tableView);

    Scene scene = new Scene(vbox);

    primaryStage.setScene(scene);

    primaryStage.show();
  }

}

如果您想更改列的宽度,请使用:

column1.setMinWidth(100);

如果您想增加 header 和数据行之间的间距。然后你可以像这样添加一些空行:

tableView.getItems().add(new Person("", ""));

我同意@sorifiend 在评论中提到的内容。关于您要寻找什么样的间距的问题,您需要更加详尽。

如果您询问如何放大 cell/header,一种方法是您可以通过更改 css 值来实现。

添加您的 css 样式表如下:

scene.getStylesheets().add(getClass().getResource("table.css").toExternalForm());

并在 table.css 文件中包含以下 css:

.table-cell, .column-header.table-column .label{
  -fx-padding:10px;
}