Copying a Row or Column in a JTable Component

This example demonstrates how to copy a column or row of data in a DefaultTableModel.
DefaultTableModel model = new DefaultTableModel(); JTable table = new JTable(model); // Create some data // Get all the table data Vector data = model.getDataVector(); // Copy the second row Vector row = (Vector)data.elementAt(1); row = (Vector)row.clone(); // Overwrite the first row with the copy Vector firstRow = (Vector)data.elementAt(0); for (int i=0; i<row.size(); i++) { firstRow.set(i, row.get(i)); } // Append the copy to the end of the table. // Note that a copy is NOT made of 'row'. model.addRow(row); // Copy the first column int mColIndex = 0; java.util.List colData = new ArrayList(table.getRowCount()); for (int i=0; i<table.getRowCount(); i++) { row = (Vector)data.elementAt(i); colData.add(row.get(mColIndex)); } // Copy it to the second column for (int i=0; i<colData.size(); i++) { row = (Vector)data.elementAt(i); row.set(1, colData.get(i)); } // Append a new column with copied data model.addColumn("Col3", colData.toArray());

Post a comment

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image. Ignore spaces and be careful about upper and lower case.