привязка данных вручную - PullRequest
2 голосов
/ 11 января 2012

У меня довольно большой интерфейс Swing (несколько текстовых полей, выпадающих списков, флажков, настраиваемых всплывающих диалоговых окон и т. Д.) И модель данных, которую необходимо изменить при изменении элемента управления пользовательского интерфейса: ввод нового текста в текстовое поле, флажок и т. Д..

Вопрос в том, что является наилучшей практикой для организации обновления + проверки входных значений.

К сожалению, я не могу использовать структуру привязки, например, привязку бобов.

Ответы [ 2 ]

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

Объедините ответ JB Nizet с проверкой в ​​ваших компонентах, например, используя JFormattedTextField (или расширенную версию этого). Вы можете использовать JFormattedTextField также в качестве редактора для JComboBox экземпляров. Вы можете добавить проверку к JSlider экземплярам.

Короче говоря, предоставляйте немедленную обратную связь пользователю, когда он вводит недопустимое значение. Это в сочетании с проверкой на стороне модели делает хорошее применение.

Это можно сравнить с современным веб-сайтом: проверка на стороне клиента с использованием javascript для немедленной обратной связи с пользователем + проверка на стороне сервера для проверки, которая не проходит через пользовательский интерфейс, или чтобы избежать отвратительных пользователей, обходящих проверку на стороне клиента

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

Добавьте соответствующие слушатели к компонентам и обновите модель при возникновении событий.

Или создайте свой пользовательский интерфейс так, чтобы все сохранялось в модели только при нажатии кнопки Сохранить или OK . Это также помогает с проверкой, потому что вам просто нужно проверить все сразу, когда кнопка нажата.

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