复制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中的建议。

预先感谢!

解决方法

简单是最难的事。 Massimiliano Allegri

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