He wants the sweet taste. He doesn't HAVE to eat the rest if you give him the sweet taste. You need to stop buying it and having it in the house. He will NOT starve. Don't make him eat. If he doesn't want it, say fine and take him down from the table.
You have to understand, mom, that he has trained you to do what he wants. He doesn't even have to TRY to like the foods you offer him. You are always bailing him out and giving him the sweet stuff.
When he fusses, just say "Oh I'm sorry honey. We don't have any. This is your dinner." Change the subject, munch down with quiet "Mmm!" noises and chat with your husband and ignore that he doesn't like the food. Don't give him ANY attention for his eating or not eating at the table. When he fusses and doesn't eat, say "You must be done" and take him down and continue to sit at the table and eat. He must see that you do not care.
If he comes back later to eat, put him up in his high chair, warm up his plate - the exact same food - and put it in front of him. Walk away. Do NOT sit with him. Dinner time and fun with family is over. If he won't eat it, it is time for bed.
He will only go to bed a few times hungry and then he will start eating something that you give him. Always try to have ONE thing on the plate that you think he MIGHT eat.
I promise you that this is pure manipulation on his part, brought about by you catering too much to his sweet tooth. Stop letting him do this. It's not good for him, and you do know that.
Good luck,
Dawn