Как я могу скопировать какую-то часть JTable в другую JTable?

#java #swing #jtable

#java #swing #jtable

Вопрос:

У меня есть список persons (в JTable) и я хочу экспортировать его в файл Excel, мне нужно, чтобы каждый пользователь переходил на отдельный лист, поэтому мне нужно разделить исходную JTable, но я не знаю как?

это то, что я хочу сделать?

 public void exportToExcelSelectedPersons(HSSFWorkbook hwb, JTable table) {
        String sheetName = null;
        final PersonsList personList = PersonsList.getInstance();
        TimeTable tt = new TimeTable();

    tt = new TimeTable();
    int[] selectedIndexes = personList.getSelectedIndices();
    sheetName = personList.getModel().getElementAt(selectedIndexes[0]).getName();
    int i, j;
    for (i = 1; i < table.getRowCount(); i  ) {
        for (j = 1; j < table.getColumnCount(); j  ) {
            if (table.getValueAt(i, j) instanceof PersonInfo) {
                break;
            }
            //copy table (for this specefic person) to tt
            //exportToExcel(hwb, tt, sheetName);
        }
    }
}
  

Ответ №1:

вы можете разделить TableModel между двумя JTables (например, используя RowFilter для 2nd. JTable )

или путем копирования данных между ними, TableModels используя отдельные два TableModels для двух JTables , используя RowFilter для 2-го. JTable

Ответ №2:

Используйте список POJO для хранения данных и напишите несколько простых табличных моделей, обертывающих список, чтобы использовать его в JTables. Затем передайте этот список POJOS методу export — не JTable и не TableModel.

Комментарии:

1. Я не понимаю, что вы конкретно имеете в виду, не могли бы вы, пожалуйста, объяснить подробнее

2. Вот пример (только для чтения) TableModel, которую я написал некоторое время назад, которая оборачивает список: puces-samples.svn.sourceforge.net/viewvc/puces-samples/tags/… (Если вы хотите, чтобы она была изменяемой, обязательно вызовите методы fire базового класса.) Метод export не должен работать с классами пользовательского интерфейса, такими как TableModel или JTable. Вместо этого должен быть список<myObj> .