javafx - Disabling Button while TextFields empty not working -


booleanbinding bb = new booleanbinding() {     {        super.bind(addnum.textproperty(),addt1.textproperty(),addt2.textproperty(),                addt3.textproperty(),addasg.textproperty(),addatt.textproperty());     }     @override     protected boolean computevalue() {       return (addnum.gettext().isempty() && addt1.gettext().isempty()             && addt2.gettext().isempty() && addt3.gettext().isempty()             && addasg.gettext().isempty() && addatt.gettext().isempty());        }     };      final button b2 = new button("add");     b2.disableproperty().bind(bb); 

this code disable button when textfields empty, button becomes active when textfield filled. code not working. when 1 textfield filled button becomes active. had used code @ other parts of project same purpose add working fine there. why not working here ?

if want button active if , if fields filled (i.e. not empty), using wrong operator. use || instead of && make work.

you can easyly see what's wrong, if reformulate formula computevalue using demorgan's laws; write

a1, a2, ..., a6 

instead of

`addnum.gettext().isempty()`, `addt1.gettext().isempty()`, ..., `addatt.gettext().isempty()`: 

the following statements equivalent:

  • the button active
  • !(a1 && a2 && ... && a6)
  • (!a1 || !a2 ||...|| !a6)
  • at least 1 field filled

in contrast || instead of &&:

the following statements equivalent:

  • the button active
  • !(a1 || a2 || ... || a6)
  • (!a1 && !a2 &&...&& !a6)
  • all fields filled

Comments

Popular posts from this blog

c++ - How to add Crypto++ library to Qt project -

jQuery Mobile app not scrolling in Firefox -

How to use vim as editor in Matlab GUI -