在 Windows 应用程序中创建 TableView 时,我像这样初始化元素:
//Получить контроллер окна main
Controller_MainGUI controller = this.loader.getController();
//Получить tableViewFileName
TableView tableViewFileName = controller.getTableViewFileName();
//Получить колонки таблицы
ObservableList<TableColumn<HashMap<String, String>, String>> record = tableViewFileName.getColumns();
//В колонку добавить MapValueFactory
TableColumn<HashMap<String, String>, String> column1 = record.get(0);
MapValueFactory map1 = new MapValueFactory<>("name");
column1.setCellValueFactory(map1);
同时,在初始化tableView元素的时候,可以设置column-column1属性,该属性负责改变column的大小:
setResizable(true/false)
同时,如果我们想拉伸它,那么没有类似的东西会负责调整 tableView 的大小,但找不到。
tableView 有一个有趣的方法:
setColumnResizePolicy();
同样,他负责处理列并调整它们的大小,但这不适用于 tableView 的大小。
在这种情况下,我的主要想法是,如果您拖动表格对象的边缘,您可以在工作过程中调整 tableView 的大小。例如,拖动图中所示的边框。
如果您在操作系统中拖动窗口的边缘,可以看到类似的东西。
附录 1:我的表 - tableView 位于 AnchorPane 元素中的表单上。图中显示了更完整的层次结构。
告诉我如何设置 tableView 属性,该属性负责调整此元素的大小。也许还有其他机制或机制来影响这一点。非常感谢您提前。
找到了适合我的解决方案。考虑到我只需要能够垂直拉伸表格,这很有用。该解决方案适用于有类似要求的所有人。
我当前的元素层次结构如下所示:
窗口本身看起来像这样:
有必要将所有必要的元素放置在 BorderPane 中,其中尺寸应设置为大于窗口的初始尺寸。因此,可以将窗口从初始尺寸拉伸到某个允许的最大尺寸。这将改变 BorderPane 和内部元素的大小(在我的例子中,这些是几个 tableViews)。
为此,您需要设置 3 个参数:
这可以用这样的代码来完成:
这个想法是沿着y轴(或“高度”参数)在允许的值范围内改变窗口。在我的例子中,是从 352 到 881。当窗口被拉伸时,BorderPane 的尺寸以及该元素内的所有元素都会发生变化,即所有表格沿 Y 轴的大小。这会产生动态调整大小的感觉.