Это можно сделать, построив строку на основе каждой строки таблицы, выбранной в модели таблицы.Ниже приведен метод, который будет возвращать массив строк каждой выбранной строки таблицы.Каждый элемент этого возвращаемого строкового массива содержит строку с разделителем по трубе (|), содержащую все данные столбца для каждой выбранной строки:
public static String[] getJTableSelectedRowsData(JTable theTable) {
// Gets the data contained within all Selected Table Rows.
// Each array element within the returned string array will
// contain a Pipe delimited data string of each selected row.
int[] selectedRows = theTable.getSelectedRows();
String[] resultArray = new String[selectedRows.length];
DefaultTableModel dtm = (DefaultTableModel) theTable.getModel();
int nCol = dtm.getColumnCount();
for (int i = 0; i < selectedRows.length; i++) {
String resultString = "";
for (int j = 0; j < nCol; j++) {
resultString += resultString.equals("") ? dtm.getValueAt(selectedRows[i], j).toString()
: "|" + dtm.getValueAt(selectedRows[i], j).toString();
}
resultArray[i] = resultString;
}
return resultArray;
}
Теперь возьмите этот строковый массив и создайте строку Single для передачи в JTextArea.Это может выглядеть примерно так:
String[] selectedTableRecords = getJTableSelectedRowsData(jTable1);
StringBuilder sb = new StringBuilder();
for (String str : selectedTableRecords) {
sb.append(str).append(System.lineSeparator());
}
jTextArea1.setText(sb.toString());
Возможно, это не совсем то, что вы искали, но это может дать вам представление о том, как достичь того, что вам нужно.