File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Swing / AWT / SWT and the fly likes JPanel vs. JFrame Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "JPanel vs. JFrame" Watch "JPanel vs. JFrame" New topic

JPanel vs. JFrame

Brandt Charles
Ranch Hand

Joined: Apr 17, 2006
Posts: 57

When displaying graphics, is it not possible to draw them directly to the container of JFrame? All the examples I've seen in my text involve using JPanel, but I was still curious. Does JPanel provide a separate container from that of JFrame?

I am quite the graphics novice, so forgive my naivete.

Green, green, green!
Michael Dunn
Ranch Hand

Joined: Jun 09, 2003
Posts: 4632
it is possible to draw directly to the frame, using frame's paint(..) method,
but better to use a JPanel because of its paintComponent(..)

although, in this recent thread (with example of using JFrame and paint())
it was suggested paintComponent(..) should be used for the JFrame.

I still can't find a paintComponent() method for a JFrame, so I'll leave it
for you to experiment
Craig Wood
Ranch Hand

Joined: Jan 14, 2004
Posts: 1535
Does JPanel provide a separate container from that of JFrame?
Yes. Confining graphics to a separate graphics component simplifies things.
You can draw graphics using a containers "paint" method but it is more complicated. The tutorial has an article (with links to others) that can help you get started:
Lesson: Performing Custom Painting
Since this is lower-level work there are a lot of things you have to figure out/put together on you own. This example tries to point out some of them.
memati bas
Ranch Hand

Joined: Jan 29, 2006
Posts: 85
I think it does not matter whether you draw your picture on Frame or Panel but you should be careful that while drawing on Frame use paint(Graphics g) method and while drawing on Panel use paintComponent(Graphics g)method.
I agree. Here's the link:
subject: JPanel vs. JFrame
It's not a secret anymore!