Шаблон Java для отображения динамических таблиц? - PullRequest
0 голосов
/ 21 января 2012

Я разрабатываю Java-приложение, используя SWT.У меня есть несколько таблиц, которые будут отображать данные из базы данных, только некоторые реляционные строки со столбцами.В некоторых местах я хотел бы отобразить имя и фамилию, затем в других местах я хочу отобразить полное имя, возраст и зарплату.Мне даже может понадобиться отобразить что-то вроде имен героев мультфильмов, в каком мультфильме они находятся, будь то «хороший» или «плохой» персонаж, рейтинг того, насколько хорошо известен этот персонаж и т. Д.

Это всего лишь примеры, иллюстрирующие мою точку зрения.Я хочу отображать реляционные данные, как существует в любой базе данных.В SWT есть виджет таблицы, который идеально подходит для отображения данных такого типа (как я ожидаю, большинство библиотек графического интерфейса), но проблема с моим текущим дизайном заключается в том, что я специально прикрепляю столбцы, которые мне нужны, к таблице, когда они мне нужны.Таким образом, в некоторых местах я прикрепляю столбцы A, B, C, затем сюда я прикрепляю столбцы X, Y, Z.Что если я не знаю точно, как будут выглядеть мои столбцы до того, как я получу данные?

Могу ли я рассмотреть какие-либо шаблоны для перемещения информации о столбцах в сами данные?Я предполагаю, что это довольно распространенная необходимость.

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

Так что любые шаблоны дизайна или существующие виджеты, на которые я могу посмотреть, будут высоко оценены.Спасибо.

1 Ответ

2 голосов
/ 21 января 2012

Я не уверен, что вы имеете в виду, когда спрашиваете: «Могу ли я рассмотреть какие-либо шаблоны для перемещения информации столбца в сами данные? Я думаю, это довольно распространенная потребность».

Звучит так, будто вы хотите построить таблицу для отображения некоторых данных, которые вы извлекаете из базы данных, без «предварительного определения» таких вещей, как количество столбцов / строк, типы данных в каждом столбце и т. Д. Вы смотрели на примеры и учебные пособия по созданию TableModel?

http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data

Получив данные из базы данных, вы просто создадите экземпляр DefaultTableModel . Если вы посмотрите на конструкторы DefaultTableModel, вы заметите, что он может принимать либо двумерный массив типа Object (либо вектор векторов, либо ... вы поняли), что означает, что вам не нужно заботиться о «типе» данных. JTable выяснит, как лучше всего отображать данные в зависимости от того, что находится в модели. Заранее извиняюсь, если я полностью неверно истолковал ваш вопрос.

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