У меня есть таблица с некоторыми данными. Я хочу выбрать пару строк, которые я хочу отслеживать (затем я отобразлю эти строки в новой JFrame
со своей собственной таблицей) - давайте назовем эти отслеживаемые записи.
У меня есть фрагмент кода, который я обнаружил, который делает это точно, но он создает новую таблицу с тем же числом строк, что и исходная таблица. Однако он успешно показывает новые выбранные строки, но заполняет новую таблицу снизу вверх.
Например, в моей исходной таблице 10 строк, я выбираю 3, в новой таблице будет всего 10 строк, но только 8, 9 и 10 заполнены выбранными данными, а строки 1-7 просто содержат пустые ячейки.
Как мне сделать так, чтобы показывались только выбранные данные, а не пустые строки?
public void exportSelectedRows(ActionEvent actionEvent) {
TableModel tableModel = patientTable.getModel();
int[] index = patientTable.getSelectedRows();
Object[] row = new Object[10]; //problem is here that object has size 10 hence the 10 rows?
monitoredPatients = new MonitoredPatients();
monitoredPatients.monitoredPatientsTable = new JTable(row.length, columnNames.length);
DefaultTableModel defaultTableModel = (DefaultTableModel) monitoredPatients.monitoredPatientsTable.getModel();
for (int value : index) {
row[0] = tableModel.getValueAt(value, 0);
row[1] = tableModel.getValueAt(value, 1);
row[2] = tableModel.getValueAt(value, 2);
row[3] = tableModel.getValueAt(value, 3);
row[4] = tableModel.getValueAt(value, 4);
row[5] = tableModel.getValueAt(value, 5);
defaultTableModel.addRow(row);
}
monitoredPatients.add(new JScrollPane(monitoredPatients.monitoredPatientsTable));
}
Я ожидаю, что в новой таблице будут отображаться только выбранные записи без пустых строк.