java - 复制 Swing JTable 的选定行的最佳算法
问题描述
我正在尝试使用 Jython 复制 JTable Swing 的选定行。复制事件发生在单击时,因此起点是选定的行,最终目标是将它们复制到它们下面。
我试过了,但我想出了一个“非常”繁重的算法,它不能完全按照我的意愿去做(复制选定的算法,而不是下面......!)
def copySelectedLine(self, e):
model = self.table.getModel()
dataVector = model.getDataVector()
rowsToCopy = self.table.getSelectedRows()
for adder, r in enumerate(rowsToCopy):
r = r+adder
newDataVector = dataVector[:r] + [([model.getValueAt(r, c) for c in xrange(3)] + [
'', '', '', '', '', ''])] + dataVector[r:] # personal concatenation
model.setRowCount(0)
for nr in newDataVector:
model.addRow(nr)
我也接受 Java 中的建议。
提前致谢!
解决方案
简单是最难的事情。马西米利亚诺·阿莱格里
def copySelectedLine(self, e):
model = self.table.getModel()
rowsToCopy = self.table.getSelectedRows()
for adder, r in enumerate(rowsToCopy):
i = r+adder+1
model.insertRow(i, [model.getValueAt(r, c) for c in xrange(3)])
PS:奇怪我是第一个回答的...
推荐阅读
- php - 使用前端控制器时在同一控制器上显示 Ajax 调用值
- html - 缩放 Svg 而不拉伸其中的一部分
- php - Laravel 无法在 eloquent 创建事件上设置 id
- windows - 扩展 Windows 安全模型
- tvos13 - 使用用 Xcode 11 编译的 tvOS 13 UITabBarController - tabBarObservedScrollView 滚动内容
- scala - 将两个列表与一个不同的元素组合在一起
- php - Laravel如何自动获取数组ID
- angular - Angular 如何使用 combineLatest 组合来自网站 url 栏的路由和查询
- npm - 如何在创建新的 Angular 8 项目时修复此 json 错误
- java - Drools 在 camelCase 中查找 Java 类,引发 NoClassDefFoundError