Okay guys
First of all, i want to thank to whom tried to help me.
Finally i found problem and fixed it. I am going to describe problem and provide solution and hopes this helps somebody else.
Problem caused by line #49 (calling setComponents method setComponents();) because whenever user hit the answer button
program generates new random number but user's entered value still keeps old one so checkAnswer(); method always try to compare new code and old code therefor it always return false.
Solution was simple: Removed setComponents(); method call at line #49 and place it bottom of checkAnswer(); method.
When program checks user's answer than call setComponents(); method.