首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TableColumn prefWidth

TableColumn prefWidth
EN

Stack Overflow用户
提问于 2020-11-09 15:35:56
回答 1查看 114关注 0票数 2

我的代码中有一个TableView,当应用程序关闭时,我将为它保存每个TableColumn的索引和宽度(值被保存到一个属性文件中)。当我再次启动应用程序时,我希望将每个TableColumns的索引和宽度重置回应用程序关闭时的状态。

代码语言:javascript
复制
        // If all columns are known, reorder the columns and set the width
        if (allKnown) {
            ObservableList<TableColumn<T, ?>> columns = FXCollections.observableArrayList();

            // Column order and width
            TableColumn<T, ?> column;
            for (int i = 0; i < colIndex.length; i++) {
                column = getOriginalColumns().get(colIndex[i]);
                column.setPrefWidth(colWidths[i]);
                columns.add(column);
            }
            getTableView().getColumns().setAll(columns);
        }
        getTableView().setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);

设置索引正常工作,列设置在TableView的正确位置。但是,这不适用于列的prefWidth (所有列的大小都是可调整的)。我看过不同的论坛,罪魁祸首似乎是CONSTRAINED_RESIZE_POLICY。我想保留这个选项,因为我的应用程序的主屏幕可以调整大小。如果我使用无约束,宽度可以工作,但是当应用程序的主窗口调整大小时,我失去了自动缩放TableView的能力。

有没有人有过同样的经历并找到了解决方案?非常感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-11 03:57:11

我找到的唯一解决方案是最初设置minWidth而不是prefWidth。然后,在显示UI后的几个脉冲,修复minWidth,以便列大小调整再次正常工作。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64747452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档