Ограничить, какие значения будут подлежать урегулированию в свойстве javafx?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ограничить, какие значения будут подлежать урегулированию в свойстве javafx?

Сообщение Anonymous »

Каков наилучший способ сохранить значение свойства javafx в определенных пределах?

(Или — это плохая практика, если есть какая-либо причина никогда не значения фильтра, заключенные в свойства Javafx?)

Пример 1: избегайте отрицательных значений в IntegerProperty

Пример 2: сохраняйте значение IntegerProperty в пределах списка

Первая идея: — переопределить IntegerPropertyBase.set(int). Это безопасно? На самом деле setValue(int) вызывает только set(int), но - если эта реализация когда-нибудь изменится - контроль над набором значений будет потерян.

Вторая идея: переопределить IntegerPropertyBase.invalidate(). Но на этом этапе значение уже было установлено.

Будет ли лучше, если свойства javafx выбрасывают исключение IllegalArgumentException (или ArrayIndexOutOfBoundsException, если завернутое значение — это индекс массива), или лучше отказаться от значения за пределами границ, вернув последнее значение в границах?

Может быть так:

Код: Выделить всё

    class BoundedIntegerProperty extends IntegerPropertyBase {
(...)
int oldValue = defaultValueInBounds;
boolean settingOldValue = false;
public void invalidated() {
if(!settingOldValue){
if(outOfBounds(get())){
settingOldValue = true;
set(oldValue);
} else {
oldValue = get();
}
} else
settingOldValue = false;
}
}
Только вызов исключения в инвалидированном() для значений, выходящих за пределы, может привести к тому, что значение свойства выйдет за пределы.

Пропустил ли я что-нибудь в свойствах javafx, предусмотренных для фильтрации значений?


(Если необходимо, помогите мне улучшить, возможно, плохой английский текст этого текста. ...)

Подробнее здесь: https://stackoverflow.com/questions/175 ... x-property
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»