在拖动列上显示列标题
我在GroupableHeader中实现代码并尝试启用允许重新排序但我有两个问题:
1:拖动列时,标题不会在列上看到
2:如何限制列的拖动区域以防止columnGroup的列退出
我不明白为什么标题在列拖动时看不到,我读了表头api但没有找到任何解决方案。 解决这些问题的任何想法?
我的前任还认为使用他们从互联网上复制的代码是一个好主意…幸运的是,对于我的公司,我没有
我花了大约4个星期的业余时间挖掘实现并将其与默认的BasicTableHeaderUI
进行比较,找出如何恢复…
- 列排序,包括将分组列限制为该组
- 行排序
- 各种其他零碎
这是一个不完整的解决方案,因为我还没有达到拖动组并让它显示组中的所有列的程度,但这是在TableUI
不幸的是,我无法粘贴代码,它超过了3000个字符的限制,但你可以从这里获取副本
更完整的解决方案: JBroTable 。
它基于MadProgrammer的答案。 它也限制列拖出组。 并带来一些额外的function:
- 任意行数
- 用于模型创建的自然API
- 对其他L&F的一般支持(Windows系统L&F,GTK,Nimbus等)
样本模型创建:
IModelFieldGroup groups[] = new IModelFieldGroup[] { new ModelFieldGroup( "A", "A" ) .withChild( new ModelField( "B", "B" ) ) .withChild( new ModelField( "C", "C" ).withRowspan( 2 ) ), // Custom rowspan set. new ModelFieldGroup( "D", "D" ) .withChild( new ModelField( "E", "E" ) ) .withChild( new ModelField( "F", "F" ) ), new ModelField( "G", "G" ), new ModelFieldGroup( "H", "H" ) .withChild( new ModelFieldGroup( "I", "I" ) .withChild( new ModelField( "J", "J" ) ) ) .withChild( new ModelField( "K", "K" ) ) .withChild( new ModelFieldGroup( "L", "L" ) .withChild( new ModelField( "M", "M" ) ) .withChild( new ModelField( "N", "N" ) ) ) };
结果:
动画演示 (2.5M)
更新:
添加了整个拖动列组的图形。