netbeans - How does javafx compares colors? -


for school need make game called memory, mine isn't working fine. have cards , can turn around don't know how can javafx compares colors , turning cards if colors not mach or let cards dissapear if colors mach. can guys please me? little part of code:

d = rectangle { width: bind 150 height: bind 150 x: bind 500 y: bind 20 arcwidth: 20 archeight: 20 fill:  color.green stroke: color.black strokewidth: 1.0 onmouseclicked:function(a: mouseevent)         {            if(d.fill == color.green)             d.fill = color1.yellow          else             d.fill = color.green         } }  if(color1.equals("yellow"))              && (color2.equals("yellow"))  {   d.setvisible(false);   j.setvisible(false);   } 

versions 2.x

javafx obiously partly open source (stack overflow reference). link found source code equals() method in color class versions 2.x:

/**  * indicates whether other object "equal to" one.  * @param obj reference object compare.  * @return {@code true} if object equal {@code obj} argument; {@code false} otherwise.  */ @override public boolean equals(object obj) {     if (obj == this) return true;     if (obj instanceof color) {         color other = (color) obj;         return red == other.red             && green == other.green             && blue == other.blue             && opacity == other.opacity;     } else return false; } 

obviously, red, green, blue, , opacity needs same.

versions 1.x

for versions 1.x looked @ compiled class file , feel confident enough implementation same 2.x (snippet below):

@com.sun.javafx.runtime.annotation.public   public boolean equals(java.lang.object arg0);   4  invokestatic javafx.lang.builtins.issameobject(java.lang.object, java.lang.object) : boolean [87]  15  instanceof javafx.scene.paint.color [80]  18  ifeq 121  22  checkcast javafx.scene.paint.color [80]  28  invokevirtual javafx.scene.paint.color.get$red() : float [45]  38  invokevirtual javafx.scene.paint.color.get$red() : float [45]  50  invokevirtual javafx.scene.paint.color.get$green() : float [47]  60  invokevirtual javafx.scene.paint.color.get$green() : float [47]  72  invokevirtual javafx.scene.paint.color.get$blue() : float [48]  82  invokevirtual javafx.scene.paint.color.get$blue() : float [48]  94  invokevirtual javafx.scene.paint.color.get$opacity() : float [49] 104  invokevirtual javafx.scene.paint.color.get$opacity() : float [49] 

the equals() implementation has not changed 1.x 2.x.

your real problem

if color1 , color2 indeed of type color, comparing them objects of type string:

if(color1.equals("yellow")) && (color2.equals("yellow")) 

the comparison fail here:

if (obj instanceof color) 

hence, equals() method return false. should use equals() object of type color.


Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

css - Make div keyboard-scrollable in jQuery Mobile? -

android - Keyboard hides my half of edit-text and button below it even in scroll view -