javafx,table 的高度未调整大小

javafx, hieight of table is not resizing

我已经使用 scenebuilder 在 javafx 中创建了 TableView。它在小 window 中看起来很棒,但是当我将其全屏显示时,它不会调整高度,而只会调整宽度。它还显示了一个我没有创建的额外空列。所以请帮助我。我刚刚调用了using main.java class的fxml文件。

The UI I created in SceneBuilder

The Window after full screen with extra unwanted column

您可以使用绑定解决这些问题:

  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));
    
  2. TableView 高度:

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

    其中 contentVBox

    的引用