#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> .