javafx, высота таблицы не изменяется - PullRequest
0 голосов
/ 28 августа 2018

Я создал TableView в javafx, используя scenebuilder. Он отлично смотрится в маленьком окне, но когда я делаю его на весь экран, он изменяет не его высоту, а только ширину. И это также показывает один дополнительный пустой столбец, который я не создал. Поэтому, пожалуйста, помогите мне. Я только что назвал fxml файл использования класса main.java.

Пользовательский интерфейс, который я создал в SceneBuilder

Окно после полного экрана с лишним ненужным столбцом

1 Ответ

0 голосов
/ 29 августа 2018

Вы можете решить эти проблемы, используя привязки:

  1. Ширина столбца:

Если вы хотите разделиться поровну, тогда:

    first.prefWidthProperty().bind(tableView.widthProperty().divide(3));
    last.prefWidthProperty().bind(tableView.widthProperty().divide(3));
    email.prefWidthProperty().bind(tableView.widthProperty().divide(3));

Или вместо использования divide(3) вы можете установить любое деление, например: 40% 40% 20%

Как:

    double firstPercent = 0.4;
    double lastPercent = 0.4;
    double emailPercent = 0.2;
    // firstPercent + lastPercent + emailPercent = 1 !!!
first.prefWidthProperty().bind(tableView.widthProperty().multiply(firstPercent));
last.prefWidthProperty().bind(tableView.widthProperty().multiply(lastPercent));
email.prefWidthProperty().bind(tableView.widthProperty().multiply(emailPercent));
  1. Высота TableView:

    tableView.prefHeightProperty().bind(content.heightProperty());
    

, где content является ссылкой VBox

...