Как привязать несколько свойств TextField к одной кнопке

 btnAddToCart.disableProperty().bind(
            Bindings.and(
                    fieldQuantity.textProperty().isEqualTo(""),
                    fieldBarcodeID.textProperty().isEqualTo("")));

У меня есть такой код выше, и он работает очень хорошо, но проблема в том, что он возвращает мне логический оператор ИЛИ, означающий, что если fieldQuantity не пусто, кнопка будет включена. Я хочу, чтобы это было похоже на логический оператор AND. Где эти два поля должны содержаться, прежде чем кнопка будет включена. Надеюсь, я проясню здесь ситуацию. Благодарю вас!

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
183
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш код отключает кнопку, если оба текстовых поля пусты. Вы хотите отключить кнопку, если текстовое поле либо пусто: т.е. вам нужен or, а не and:

btnAddToCart.disableProperty().bind(
        Bindings.or(
                fieldQuantity.textProperty().isEmpty(),
                fieldBarcodeID.textProperty().isEmpty()));

Обратите внимание, что я использовал метод isEmpty(), который немного чище, imho.

Спасибо, приятель, это работает, но это немного сбивает с толку, насколько я знаю, использование оператора AND должно возвращать оба истинных условия. и ИЛИ возвращает любой из них для выполнения оператора. в моем случае я хочу, чтобы два текстовых поля содержали, чтобы включить его.

i4mB4rney 02 22.04.2018 10:13

@ i4mB4rney02 Не знаю, почему это сбивает с толку. В исходном коде вы используете and, что верно, если выполняются оба условия. Таким образом, ваш исходный код отключает кнопку Только, когда текстовые поля оба пусты. Вы хотите отключить текстовое поле, если какое-либо текстовое поле пусто, поэтому вы хотите отключить его, если первое текстовое поле пусто или же, второе текстовое поле пусто.

James_D 22.04.2018 13:26

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

i4mB4rney 02 22.04.2018 17:48

@ i4mB4rney02 Как, черт возьми, вы интерпретируете значение «И»? Логика такова: «Если fieldQuantity пуст ИЛИ fieldBarcodeID пуст, отключите кнопку». Похоже, вы действительно не понимаете, что означают ИЛИ и И ...

James_D 22.04.2018 17:50

Другие вопросы по теме