Лучшие практики Привязки данных Java

Даже если я не плохо знаком с Java, я только использовал его в среде школы/университета, таким образом, я не знаю все лучшие практики, используемые на предприятии.

В особенности я теперь разрабатываю настольное приложение Java (использующий Swing на Слое UI), и я особенно интересуюсь лучшими практиками о привязке данных с компонентами колебания.

Например, у меня мог быть Список объектов модели на образцовом слое, и я должен показать им в JTable. Затем когда одна строка JTable выбрана, я должен отобразить некоторую информацию относительно объекта модели, соответствующего выбранной строке на некотором JLabels.

Какими библиотеками я должен пользоваться? Что лучшие практики должны сделать так?

Я ищу некоторые ссылки/статьи/учебные руководства (/книги?), чтобы погрузиться в эту тему и узнать о за и против различных решений.

9
задан Andrea Zilio 28 June 2010 в 21:15
поделиться

4 ответа

Для конкретного примера, который вы приводите, я бы рекомендовал следующий подход:

  1. Представьте объекты вашей модели в виде List , где реализация List поддерживает RandomAccess (например, ArrayList ).
  2. Подкласс AbstractTableModel и переопределите getValueAt (int row, int col) для индексации в ваш List и получения соответствующей Model экземпляр. Затем верните конкретный атрибут, который вы хотите привязать к столбцу: col .

В общем, когда дело доходит до привязки данных, я предпочитаю использовать свой фреймворк. Для панелей в стиле редактора я обычно реализую три метода: initialise () , commit () и clear () , при этом initialise принимает экземпляр редактируемого объекта домена, commit применяет любые изменения и возвращает измененный экземпляр объекта домена, а clear очищает все значения компонентов пользовательского интерфейса или устанавливает их обратно в значения по умолчанию.

6
ответ дан 4 December 2019 в 22:27
поделиться

Я не очень хорошо разбираюсь в свинге, но пробовали ли вы использовать шаблон посредника Model gui? Применимо на любом языке и с любыми компонентами графического интерфейса.

0
ответ дан 4 December 2019 в 22:27
поделиться

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

Имейте аккуратную UI IDE (например, Netbeans) для разработки, связанной со свингом. ВСЕГДА используйте макеты. Макеты поначалу трудно разрабатывать, но как только вы начнете работать с ними, они станут действительно полезными и удобными. Далее вам придется разбираться в слушателях в Swing и, конечно же, в Swingworkers. Погуглите, и вы найдете очень хорошие ресурсы по ним.

1
ответ дан 4 December 2019 в 22:27
поделиться

Для обработки действия выбора вам нужно реализовать ListSelectionListener на модели выбора вашей JTable. Подробности можно узнать здесь и здесь.

Как только событие сработает, вам будут предоставлены некоторые данные о четном событии, включая источник события. Вам также будет предоставлен ведущий индекс выбора, который вы можете использовать для идентификации выбранной строки (при условии, что вы не разрешаете множественный выбор). Чтобы получить значения для кнопок, вам нужно будет собрать объект данных из вашей модели таблицы (или другой общей модели, в зависимости от дизайна вашей модели).

1
ответ дан 4 December 2019 в 22:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: