Даже если я не плохо знаком с Java, я только использовал его в среде школы/университета, таким образом, я не знаю все лучшие практики, используемые на предприятии.
В особенности я теперь разрабатываю настольное приложение Java (использующий Swing на Слое UI), и я особенно интересуюсь лучшими практиками о привязке данных с компонентами колебания.
Например, у меня мог быть Список объектов модели на образцовом слое, и я должен показать им в JTable. Затем когда одна строка JTable выбрана, я должен отобразить некоторую информацию относительно объекта модели, соответствующего выбранной строке на некотором JLabels.
Какими библиотеками я должен пользоваться? Что лучшие практики должны сделать так?
Я ищу некоторые ссылки/статьи/учебные руководства (/книги?), чтобы погрузиться в эту тему и узнать о за и против различных решений.
Для конкретного примера, который вы приводите, я бы рекомендовал следующий подход:
List
, где реализация List
поддерживает RandomAccess
(например, ArrayList
). AbstractTableModel
и переопределите getValueAt (int row, int col)
для индексации в ваш List
и получения соответствующей Model
экземпляр. Затем верните конкретный атрибут, который вы хотите привязать к столбцу: col
. В общем, когда дело доходит до привязки данных, я предпочитаю использовать свой фреймворк. Для панелей в стиле редактора я обычно реализую три метода: initialise ()
, commit ()
и clear ()
, при этом initialise
принимает экземпляр редактируемого объекта домена, commit
применяет любые изменения и возвращает измененный экземпляр объекта домена, а clear
очищает все значения компонентов пользовательского интерфейса или устанавливает их обратно в значения по умолчанию.
Я не очень хорошо разбираюсь в свинге, но пробовали ли вы использовать шаблон посредника Model gui? Применимо на любом языке и с любыми компонентами графического интерфейса.
Всегда держите ваше приложение открытым для расширения и помните о коэффициенте сопряжения. Я имею в виду, что вы должны хранить все свои модели данных в отдельных структурах данных независимо от уровня пользовательского интерфейса (компоненты Swing). Вы должны попытаться иметь отдельную слабосвязанную (иметь отдельный пакет поставщика данных) структуру данных, которая предоставит вам все необходимые значения. Как только эта структура будет создана, вы можете начать беспокоиться о привязке пользовательского интерфейса.
Имейте аккуратную UI IDE (например, Netbeans) для разработки, связанной со свингом. ВСЕГДА используйте макеты. Макеты поначалу трудно разрабатывать, но как только вы начнете работать с ними, они станут действительно полезными и удобными. Далее вам придется разбираться в слушателях в Swing и, конечно же, в Swingworkers. Погуглите, и вы найдете очень хорошие ресурсы по ним.
Для обработки действия выбора вам нужно реализовать ListSelectionListener
на модели выбора вашей JTable
. Подробности можно узнать здесь и здесь.
Как только событие сработает, вам будут предоставлены некоторые данные о четном событии, включая источник
события. Вам также будет предоставлен ведущий индекс выбора, который вы можете использовать для идентификации выбранной строки (при условии, что вы не разрешаете множественный выбор). Чтобы получить значения для кнопок, вам нужно будет собрать объект данных из вашей модели таблицы (или другой общей модели, в зависимости от дизайна вашей модели).