gpt4 book ai didi

java - 如何在 JTable 中维护用户指定的列宽?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:26:40 29 4
gpt4 key购买 nike

所以我正在使用一个 JTable,它与我自己的自定义数据模型相关联。这么多都是功能性的,但我遇到的问题是,每当我对表进行更改(触发 tableDataChanged、tableStructureChanged 等)时,所有列宽都会自行重置为默认值。我从研究中了解到,这与默认分配的 TableColumnModel 有关。除了此重置之外,我对 DefaultTableColumnModel 的功能感到满意,但我只想保留列的宽度,如果用户应该调整它们的大小(通过拖动列标题的边缘).

我知道 TableColumns 的 setPreferredWidth(),我已经成功地做到了;我想我的问题是我应该听什么样的事件来保存和设置这个首选宽度。我尝试将 PropertyChangeListener 添加到表头,但每当我尝试调整大小时我都会得到一个 StackOverflow(我假设它正在递归运行)。我完全可以在数据模型中为列宽添加一个额外的数据成员,并将其存储在那里,但我只是不知道何时/如何设置这些宽度,以免它们被 fireTableStructureChanged() 等事件。想法?

最佳答案

怎么样

table.setAutoCreateColumnsFromModel(false);

我也遇到了这个问题,这对我有用!

关于java - 如何在 JTable 中维护用户指定的列宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10193475/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com