首页 > 解决方案 > javafx,表的高度未调整大小

问题描述

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

我在 SceneBuilder 中创建的 UI

全屏后的窗口带有多余的不需要的列

标签: javafx-8

解决方案


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

  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.prefHeightProperty().bind(content.heightProperty());
    

    其中content是的参考VBox


推荐阅读