首页 > 解决方案 > 复制 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 中的建议。

提前致谢!

标签: javaswingjython-2.7

解决方案


简单是最难的事情。马西米利亚诺·阿莱格里

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:奇怪我是第一个回答的...


推荐阅读