• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

JPanel vs. JFrame

 
Brandt Charles
Ranch Hand
Posts: 57
Chrome IntelliJ IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Michael Dunn
Ranch Hand
Posts: 4632
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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())
http://www.coderanch.com/t/343029/GUI/java/repaint-method
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
Pie
Posts: 1535
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 85
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic