![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| ShkVal |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 10.11.2004 Репутация: 1 Всего: 1 |
Посмотрите сами по стеку поставив точку останова на setOrderNo() явно не вызывается и мне не понятно, что нужно сделать чтобы вызвался этот метод. Запускаю main() из com.jgoodies.validation.tutorial.basics.ComponentFeedbackExample
|
|||
|
||||
| ShkVal |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 10.11.2004 Репутация: 1 Всего: 1 |
Вроде понял это указывается сдесь
severityOrderNoField = ExampleComponentFactory.createTextField( orderModel.getModel(Order.PROPERTYNAME_ORDER_NO), false); если не так поправте. Так как я плохо знаю SWING и тем более JGoodies не могли бы подсказать что даёт этот вызов firePropertyChange(PROPERTYNAME_ORDER_NO, oldValue, newValue) в setOrderNo()? |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 7 Всего: 151 |
Собственно, создает новое событие, событие изменения поля. Видимо, PROPERTYNAME_ORDER_NO - это имя поля, oldValue - старое значение, newValue - новое значение. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| carper |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 2.3.2005 Репутация: 4 Всего: 8 |
ShkVal
Да не могу я посмотреть, я же JGoodies целиком не ставил (да и нет его у меня, есть только то, что Вы указали, а это морока приторачивать отдельно валидатор, собирать пакет, да ну его Кнопка OK в тестовом примере есть? По ее нажатию, если проходит валидация !, метод updateModel разве не вызывается?
Это работа MVC (model-view-controller) - модель - представление - контроллер. Модель отвечает за работу с данными, например, хранит их, предоставляет невизуальные методы для добавления и отображения данных... Представление отвечает за отображение данных. Контроллер отвечает за взаимодействие (например, отрабатывает события от мыши и клавиатуры - ну, скажем нажали на клавишу - контролер вызовет метод модели для добавления символа и метод представления для его отображения) между представлением и моделью. Часто модель и контроллер логически объединяют вместе. Также есть интерфейсные классы, типа JTextField, которые "прячут" от нас реализацию MVC и выступают как некий готовый объект, обладающий всеми свойствами MVC сразу. Таким образом, метод firePropertyChange - говорит представлению, что данные, хранящиеся в модели, изменились и представлению следует позаботится об обновлении. Представление, получив сигнал, что такие-то данные изменились, поставит в очередь событий SWING работу по изменению экранного представления данного компонента, может еще что-то поменяет внутри своих собственных переменных состояния. Кстати, метод firePropertyChange это не метод Goodies, насколько я могу догадываться это часть работы стандартного механизма java.beans (отсюда и наши public set and get методы называются именно так (с эти префиксом), иначе их не будет использовать IDE). ( Поскольку SWING НЕ потокобезопасное решение (он использует один собственный поток для ускорения работы), то и существует необходимость очереди - нельзя сразу обновлять тот или иной компонент (тем более нельзя этого делать из модели, не понимая как это можно сделать - можно вступить в конфликт с другими событиями SWING). ) Теперь понятно, что сделали разработчики JGoodies в их validate? Они не стали трогать представление - т.е. вы можете использовать с этим модулем любые компоненты SWING, включая собственноручно написанные (главное, чтобы в них не была затронута модель). Они просто переписали стандартную модель (именно это Вы сделали бы и сами, т.к. это самый простой и правильный путь как-то изменить работу с данными). Чтобы мы могли как-то взаимодействовать с этой переписанной моделью, они нам предоставили интерфейс и описание своего видения как должны работать методы этого самого интерфейса. Хотим послушаемся, хотим насоздаем заглушек и просто сведем работу валидатора к нулю. P.S. Короче, set и get методы можете оставить теми же, что и в примере, только скорректируйте названия (например, setMySuperTextField) и, разумеется, получайте/отдавайте величины своего поля. |
||||
|
|||||
| ShkVal |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 10.11.2004 Репутация: 1 Всего: 1 |
carper, спасибо. Рейтинг я тебе поднял за помощь.
|
|||
|
||||
| carper |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 2.3.2005 Репутация: 4 Всего: 8 |
ShkVal
Спасибо. Не думаю, что сильно помог, но я старался.
Согласен, т.к. что-то мне смутно подсказывает, что особо глубоко в JGoodies копать и не стоит. Ведь он и покупался для облегчения жизни, а не ее усложнения. |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |