gpt4 book ai didi

java - JXTable:如何查询列模型的状态?

转载 作者:行者123 更新时间:2023-11-30 07:29:44 26 4
gpt4 key购买 nike

我正在为应用程序编写一些 UI 持久性方法。我试图扩展到一个 JXTable,在表模型中有一组固定的 N 列。

我如何获取和设置 JXTable 中第 #k 列的以下信息,其中 k 是表模型顺序中的列号?这并不像听起来那么容易,或者至少我缺少一些棘手的信息。

  • 列宽
  • 列可见性
  • 列顺序

TableColumnModelExt.getColumns() 包括这个疯狂的笔记,我在解析时遇到了问题:

java.util.List<javax.swing.table.TableColumn> getColumns(boolean includeHidden)

Returns a List of contained TableColumns. Includes or excludes invisible columns, depending on whether the includeHidden is true or false, respectively. If false, an Iterator over the List is equivalent to the Enumeration returned by getColumns().

NOTE: the order of columns in the List depends on whether or not the invisible columns are included, in the former case it's the insertion order in the latter it's the current order of the visible columns.

此外,我知道如何使用 JTable.convertColumnIndexToView() ,但它为隐藏列返回 -1,并且没有留下有关隐藏列再次可见时的顺序的信息。 JXTable 知道此信息,因为您可以恢复列的可见性,并将该列放在隐藏之前的位置。

最佳答案

如果我没理解错的话,您是在 View 列索引之后,如果隐藏列再次可见,则该列将具有。这不是直接支持的。

为了保存/恢复目的,有一个 class XProperties (不受官方支持,但工作顺利)在 AppFramework 的上下文中这样做,这可能会让您了解如何去做。

编辑

通过modelIndex获取一个TableColumn,获取所有列,循环比较modelIndex。伪方法 getColumnFor(modelIndex) 中的一些伪代码:

List allColumns = table.getColumns(true);
forEach {
if (column.getModelIndex() == modelIndex) {
return column;
}
return null;

关于java - JXTable:如何查询列模型的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8360905/

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