I wish this helpful for you Actually there is no shift of your panel, it is located in 0,0. The problem is that the panel actually gets a size of 810,610 instead of 800,600. For some reason (which so far I was unable to find and if somebody has an idea I would love to learn), when you call setResizable(false) on a JFrame, its insets are modified and eventually this leads to your content pane to be bigger than expected (at least on JDK6/Win7). Call setResizable(false) before adding the components and packing the frame, and it works. Also consider painting a rectangle of the size of your panel (g.fillRect(0, 0, getWidth(), getHeight()); so that you are sure to fill the entire area, no matter what happens.
To fix the issue you can do I have created two classes in my package named ball and toop . and want to add them in my third class whitch extends JFrame . I did but objects didnt display in a JFrame when I use Container . and without Container only one of them added to JFrame . here is my code : , Since your class extends JFrame this line should be removed:
hope this fix your issue Assuming that JumpingBall extends JPanel, you might want to have a look at the java layout managers here: Link. The default Layout for a JFrame is the BorderLayout and if you didn't specify where you want to add your component, The BorderLayout will put it in the center by default. In BorderLayout, you cannot have more that one component in the same area. So, in your example you will end up having only the second JumpingBall panel in your frame. If you want to have more than one component at the center, then you will have to create a JPanel and add those components to it using different Layout. The common three Layouts are the BorderLayout, FlowLayout and GridLayout Please have a look at the provided link above to see how the components are arranged.
JFrame created with netbeans looks ok in design window but is messed up when I run it