问题描述
我正在尝试使用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:很奇怪我是第一个回答...