Everyone says all the time – "Be careful to combine Canvas with Swing components, because it is a heavyweight component and Swing is lightweight". How exactly will this harm me? Maybe in very specific cases that do not even come to my mind, but currently Canvas is the best way to develop games in Java if you use Swing in my opinion. And the fact is, Minecraft is also painted on AWT’s Canvas. Correct me if I’m wrong. But right now what gives me more control is Canvas and not JPanel.