2015-03-09 2 views
0

Я пишу приложение, использующее JTable, содержащее модель (DefaultTableModel). Теперь, после работы над ним в течение некоторого времени, я не совсем уверен, что это лучшая идея для хранения всех данных в модели.Использовать TableModel для сохранения и обработки данных или просто показывать объекты (содержимое)

Какие преимущества существуют, если все данные хранятся в объектах (например, в ArrayList), а модель отображает только данные из объектов списка?

Это мне пришло в голову, особенно после того, как мне нужно написать некоторые алгоритмы сортировки, которые легче обрабатывать в каком-то списке. Кроме того, сохранение «модели» -> списка объектов (тогда) было бы проще, чем сохранить модель таблицы.

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

ответ

0

Мне нужно написать некоторые алгоритмы сортировки

JTable поддерживает сортировку данных в TableModel непосредственно. Прочтите раздел из учебника Swing по телефону Sorting and Filtering для получения дополнительной информации. Таким образом, это может обрабатываться непосредственно таблицей, поэтому вам не нужен внешний код.

каждый объект, представляющий одну строку, которая хранится в списке?

Да, это действительный подход, но данные все равно должны находиться в TableModel. Это список, содержащий ваши пользовательские объекты, которые представляют строку в таблице, должен быть определен в TableModel. Если по какой-то причине вам нужно получить доступ к списку, вы добавляете вспомогательные методы в TableModel. Не храните данные в двух местах.

Например, Row Table Model, который был разработан для этой концепции. Код JButtonTableModel.java показывает, что вам нужно для кода для каждого настраиваемого объекта, который вы хотите сохранить в таблице.