Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java: Using multiple Threads to paint simultaniously on a JPanel

I have a JPanel on which I wish to have several threads painting "animations" on. An "animation" consists of a JLabel with an ImageIcon on it, which is being moved from one area of the screen to another area.

Now, problem is - I want several such animations to be portrayed on screen by those threads mentioned. Problem is - the JPanel's "paint()" method can only be trigged by one thread at a time - causing the animations to execute serially, instead of in a parallel way.

Any idea how to have several such animations on screen at the same time?

like image 223
Samorai Avatar asked Feb 26 '23 23:02

Samorai


1 Answers

It is impossible to use multiple threads to do what you want. Swing Toolkit is single threaded . The correct way to do it is to use one of the animation frameworks available:

  • Trident animation framework
  • TimingFramework
like image 146
Eugene Ryzhikov Avatar answered Mar 01 '23 14:03

Eugene Ryzhikov