移動一行如何在一個移動jTable
一排,這樣ROW1去2行的位置和2行去ROW1的位置?JTable中
Q
JTable中
8
A
回答
9
使用DefaultTableModel
的moveRow(...)
方法。或者,如果您不使用DefaultTableModel,那麼在您的自定義模型中實現一個simliar方法。
0
TableModel model = jTable.getModel();
for(int col=0; col<model.getColumnCount(); col++) {
Object o1 = model.getValueAt(row1, col);
Object o2 = model.getValueAt(row2, col);
model.setValueAt(o1, row2, col);
model.setValueAt(o2, row1, col);
}
2
這是我剛剛使用這個問題中的答案開發的代碼。 使用這些功能,您可以一次選擇多行,並將它們向下或向上移動到JTable
。我已將這些函數附加到JButton
,但我將它們清除以使它們更具可讀性。
兩種方法(setRowSelectionInterval()
)的最後一個代碼行用於跟隨被移動行的選擇,因爲moveRow()
不移動選擇內容,而是移動行的內容。
public void moveUpwards()
{
moveRowBy(-1);
}
public void moveDownwards()
{
moveRowBy(1);
}
private void moveRowBy(int by)
{
DefaultTableModel model = (DefaultTableModel) table.getModel();
int[] rows = table.getSelectedRows();
int destination = rows[0] + by;
int rowCount = model.getRowCount();
if (destination < 0 || destination >= rowCount)
{
return;
}
model.moveRow(rows[0], rows[rows.length - 1], destination);
table.setRowSelectionInterval(rows[0] + by, rows[rows.length - 1] + by);
}
相關問題
- 1. JTable中
- 2. JTable中
- 3. JTable中
- 4. JTable中
- 5. 無法調用Jtable中的JTable Cellrenderer
- 6. jtable中有不同行數的jtable
- 7. 從JTable中
- 8. JTable中的JSlider
- 9. JTable中出現
- 10. JScrollPane中的JTable
- 11. 文本JTable中
- 12. JTable中的MouseMotionListener
- 13. 列不JTable中
- 14. 從JTable中
- 15. 獲取JTable中
- 16. 在JTable中
- 17. 在JTable中
- 18. Netbeans中的JTable
- 19. JTable中的JFileChooser
- 20. JTable中的JCheckbox
- 21. 在JTable中
- 22. 打印JTable中
- 23. 的Java JTable中
- 24. 讓JTable中
- 25. 刷新JTable中
- 26. 反轉JTable中
- 27. JTable中的JCheckBox值
- 28. 如何在JTable中
- 29. 如何從JTable中
- 30. 如何在JTable中
謝謝。你能提供一個代碼片段嗎? – Attilah 2009-10-04 21:36:52
我沒有注意到有鏈接。這很有幫助。謝謝。 – Attilah 2009-10-05 15:14:45
此鏈接已過期 – 2013-07-11 15:46:33