Where do you get nodesList from? If it's a member variable which you also set with setNodesList(), won't workFlowPanel.setNodesList(nodesList) be useless?
Where and how do you fill this list of nodes? We can't really see what you're trying to paint exactly.
Why are you adding half the diameter to each node? Most Graphics methods consider x to be the left, and y the upper bound of what you're trying to paint.
You also shouldn't have to call repaint() in the Event Dispatch
Thread. repaint() is safe, and will add tasks to the EDT itself.