Самый эффективный способ управления мастер-таблицей в парсере на основе Java - PullRequest
0 голосов
/ 20 января 2010

Я работаю над проектом на основе Swing, который будет отображать большие объемы данных с использованием компонента Table. Я пытаюсь решить, каковы лучшие альтернативы с точки зрения эффективности и управления анализируемыми данными. Основной таблицей можно манипулировать (то есть можно создавать или удалять представления полных данных), поэтому полные данные должны храниться в памяти

Я знаю, что проблемы такого рода могут иметь много разных решений. Я думал о создании класса, представляющего одну запись в журнале, со свойствами, представляющими каждое «свойство» в нем. Я могу использовать объекты Comparator для сортировки на основе этих полей и использовать эти объекты для создания компонента таблицы. Это может не быть хорошей идеей, если общее количество записей составляет порядка 5000-10000 строк

Получены любые предложения о передовых методах управления данными такого рода и выполнения манипуляций с ними для визуализации графического компонента.

Было предоставлено не так много деталей, поэтому я в основном ищу общие идеи о том, как подойти к проблеме.

1 Ответ

0 голосов
/ 20 января 2010

Я предполагаю, что все файлы анализируются и представление проанализированных данных в памяти доступно, когда таблица отображается. Вам нужно иметь собственную табличную модель, которая получает данные из проанализированных файлов.

Примером вашей модели стола может быть что-то вроде ниже:

</p> <pre><code>class MyTableModel extends AbstractTableModel { private final List<String> columnNames; private List<RowData> rows; MyTableModel() { columnNames = new ArrayList<String>(); columnNames.add("Name"); //... rows = new ArrayList<RowData>(); } // populate the table data model with a List // that contains parsed data, each list element // could correspond to a record or line (say) void setCoreData(final List<RowData> data) { this.rows = data; } public Object getValueAt(final int pRow, final int pCol) { if (getColumnName(pCol).equals("Name")) { return rows.get(pRow).getName(); } //... . } // corresponds to the rows of table instances of which // are created by output of parsing private class RowData { private String name; public Object getName() { return name; } } // table instantitaion can be as below (say) JTable myTable = new JTable(new MyTableModel());

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...