The Swing software will repaint components whenever it considers that to be necessary. So that's who is doing it. And in your example, if you change the font of a component then it's going to have to be redrawn.
And frankly, if having your component's paint() method called is a problem then you haven't done it right.
You should expect that paint() will be called at any time no matter how inconvenient, and you should write it so that it doesn't do any important work except painting the component.
But... is it a problem? Why did you ask that question?