问题标签 [jxtable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用 SwingX 对 JXTable 进行排序
我使用JXTable
的是来自 SwingX 组件的。如果我使用setSortable(boolean flag)
方法,那么它将启用或禁用所有列的排序。
根据我的要求,我想禁用几列的排序并启用其他列的排序。
任何人都可以帮助实现此功能吗?
感谢您的回复。你能帮我setSorterClass(String sorterClassName)
禁用一列的排序吗?你能给我任何代码示例吗?这对我很有帮助。
java - 带有 DefaultTableCellrenderer 和备用条带荧光笔的 JXTable
我更新到 SwingX-1.6.2 但发现了 1.6 中没有出现的问题。JXTable 单元格的颜色看起来很奇怪。我使用带有备用条纹 (HighlighterFactory.createAlternateStriping) 的荧光笔用于颜色和 DefaultTableCellRenderer 的子类用于设置文本、字体、...
从 1.6.1 开始,如果设置了自定义单元格渲染器,似乎会忽略荧光笔的颜色。文档说有一个黑客,但它不起作用。
有没有人解决这个问题?
java - jtable 和 intellij - 我如何设置列显示在右侧
在 intellij 上,我在 JPanel 上创建了一个 JXTable。
我添加了两列并设置了它们的宽度。
我希望面板比 jxtable 长得多,因此我将其大小设置为非常大。
问题是列被添加到左侧。
有没有办法让它们添加到表格区域的右侧?我努力了
但没有成功
谢谢你。
java - JXTable convertRowIndexToModel 排序后结果错误?
我有JXTable
一个模型是一个List
不同的对象。在按所选列标题对视图进行排序后尝试将视图索引映射到模型索引时出现问题。使用此代码,
我得到这个结果:
我不明白为什么不同的视图索引映射到同一个模型索引?
已解决的问题:我在每行修改后立即调用了 fireTableRowsUpdated,因此所选索引不再正确。
java - 将 JXTable 与 MatchingTextHighlighter 一起使用时突出显示错误
基本问题:
在更改 TableColumn 的宽度时,该方法 SwingUtilities.layoutCompoundLabel(..)
将参数Rectangle textR
设置为旧值(或“之前的值”)。
我怎样才能获得当前(实际)矩形值?
一些背景信息和错误修正:
我使用 SwingLabs-Demos 中的MatchingTextHighlighter.java(示例是 SearchDemo.java)
仅在 JXTable 单元格中标记找到的字符是一个非常好的开始。但是如果我将单元格内容的对齐方式从更改为LEFT
:
或者
如果突出显示字符,则会出现三个错误:
情况:JLabel 的文本完全可见。
问题:列越宽(使用列标题调整大小),荧光笔越向右漂移(远离匹配的字符)。情况: JLabel 的文本部分可见(用省略号绘制...),但突出显示的字符串完全可见。
问题:在调整列宽时,荧光笔位置从一个像素到一个字符是错误的。情况:JLabel 的文本和突出显示的字符串部分可见(荧光笔应该在省略号上)
问题:省略号上的荧光笔在调整列宽时宽度错误(从无像素到正确宽度)。
这是在左对齐列中也可见的唯一错误(荧光笔始终具有正确的宽度,但有时会跳到右侧)。
第一个错误可以通过注释掉textR.x
2 行来修复(从 MatchingTextHighlighter.java 中的第 327 行开始):
出现了两个较小的问题:
一个是如果匹配区域从第一个标签字符开始,则荧光笔开始向左多一个像素。如果使用列标题调整列的宽度,则第二个是在中心对齐的列中突出显示一个像素的跳跃。
两者(加上 RightToLeft-Error)都可以通过这些更改来修复(从 MatchingTextHighlighter.java 中的第 397 行开始):
第三个错误可以通过(更改 XMatchingTextHighlighter.java 中的第 48 行)部分修复:
现在荧光笔总是从省略号的第一个像素开始,修复!:-)
但是在调整列大小时宽度会不断变化,错误!:-(
在调试了MatchingTextHighlighter.java 中的第二个和(剩下的一半)第三个错误之后,我认为对实用程序方法的调用
将参数textR
设置为旧值。在调整列大小时,文本矩形的计算宽度似乎是“一个事件落后”。正因为如此,荧光笔的位置是错误的。
有没有人有办法解决这个问题?
感谢您阅读所有这些...
java - 将 JXTable 与 RXTable 相结合
问题
我希望 JXTable 的功能具有RXTable的“编辑时全选”行为。做一个简单的覆盖就可以了,但是 RXTable 的双击功能不适用于 JXTable。使用按钮操作模式时很好,但是当使用 F2 或双击 JXTable 中的某些内容时,会与 RXTable 发生冲突并删除选择,所以我留下了默认行为。是因为它在内部使用的 GenericEditor 还是其他原因?
如何让 JXTable 在 F2 上全选或双击编辑?
编辑:看起来这只发生在模型具有为整数类型定义的列时。当它为 String 或 Object 列定义时,它按预期工作。
解决方案
感谢 kleopatra 的修复,我能够更改 selectAll 方法,以便它处理 JFormattedTextFields 和所有编辑情况。由于原始代码适用于要编辑的类型,因此我只是将修复程序用于其他情况。这就是我最终得到的。
将 RXTable 中的 selectAll 替换为以下内容:
java - JXTable 荧光笔
我想根据表中的先前数据突出显示 JXTable 中的数据。数据存在于“块”中,但每个数据块中的行数因多种因素而异;如果块中的一个元素/列(在整个块中保持一致)与前一个数据块足够不同,我想做的是交替突出显示每个数据块。
想法?
java - 视图排序过滤:GlazedList排序过滤+JTable vs Glazed事件列表+JXTable
我想创建具有排序和过滤功能的用户视图(表)。我使用 EventList ( Glazed Lists ) 作为 EventTableModel 的源。GlazedLists中还有Sorted List和一些过滤项,所以我可以用它们来创建视图。但是我找到了 JXTable,它有排序和过滤的方法,这就是我希望它工作的方式:排序和过滤必须提供 UI 组件,而模型只能保存数据:
但是 GlazedLists 也提供了 SortedList(EventList 的装饰器,带有排序),以及一些过滤方法。
问题是:哪种模型更好。或者两者都错了,创建视图有什么用?
java - JXTable:如何查询列模型的状态?
我正在为应用程序编写一些 UI 持久性方法。我正在尝试扩展为在表模型中具有一组固定的 N 列的 JXTable。
如何获取和设置 JXTable 中列 #k 的以下信息,其中 k 是表模型顺序中的列号?这并不像听起来那么容易,或者至少我错过了一些棘手的信息。
- 列宽
- 列可见性
- 列顺序
TableColumnModelExt.getColumns()
包括这个疯狂的笔记,我无法解析:
java.util.List<javax.swing.table.TableColumn> getColumns(boolean includeHidden)
返回包含的 TableColumns 的列表。包括或排除不可见的列,具体取决于 includeHidden 是真还是假。如果为 false,则 List 上的 Iterator 等效于 getColumns() 返回的 Enumeration。
注意:列表中列的顺序取决于是否包含不可见列,在前一种情况下是插入顺序,在后一种情况下是可见列的当前顺序。
另外,我知道如何使用JTable.convertColumnIndexToView()
,但它为隐藏列返回 -1 ,并且没有留下关于如果隐藏列再次可见时隐藏列的顺序的信息。JXTable 知道这些信息,因为您可以恢复列的可见性,并将列置于隐藏之前的位置。
java - JTable 或 JXTable 中的列分隔符
我有一个 JTable(或者更准确地说是 JXTable),其中包含我想要划分的 3 个分组列。我曾经有 3 个以编程方式链接的表(滚动条位置、排序、选择)。我使用了很多代码来获得这个链接,我想摆脱这个。现在我正在切换到 1 个 JXTable,因为在这个表类中有一些更好的东西。
对于几乎相同的问题,我找到了一些(不是很令人满意)的解决方案。也许有人对我有一个很好的建议。
选项 1:一个空列作为分隔符(另一种颜色,如灰色),并在使用箭头或制表键时以编程方式跳过该空列。
选项 2:将 1 列的一侧的边距设置为更大的尺寸,所以它看起来像一个分隔线。直到现在我才知道如何设置所有列的边距
选项 3:再次回到 3 个单独的表格(尤其是要以相同的方式对表格进行排序需要大量工作,因为我不想重复单独部分中的列)。这意味着我必须重写我的表格排序器,对不可见的列进行排序。
欢迎任何建议(如果它不是三个给定选项中的任何一个)