• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Bear Bibeault
  • Junilu Lacar
Sheriffs:
  • Jeanne Boyarsky
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • salvin francis
  • Frits Walraven
Bartenders:
  • Scott Selikoff
  • Piet Souris
  • Carey Brown

JFrame

 
Ranch Hand
Posts: 83
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi everybody,
I have a JFrame and added a JPanel to it, now how do I force shapes drawn to appear in this JPanel?
Thanks for the help!
Ben
 
author and iconoclast
Posts: 24203
43
Mac OS X Eclipse IDE Chrome
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
  • Write a subclass of JPanel, and use that instead of JPanel itself.
  • In your subclass, override paintComponent(Graphics).
  • In the first line of your override, call super.paintComponent(Graphics).
  • Then draw your shapes.

  •  
    Ben Buchli
    Ranch Hand
    Posts: 83
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Thanks, Ernest.
    It works...
    how would I find that out without help???
    now another question i have regarding panels. is it possible to add a ScrollPane to the Panel so that it becomes scrollable when the shapes are moved and not completely visible in the pane?
    how would i do that?
    thanks in advance
    [ May 04, 2004: Message edited by: Ben Buchli ]
     
    Ranch Hand
    Posts: 283
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Instead of adding your subclassed JPanel to the JFrame's Container instance (from getContentPane), use it as the argument to constructing a new JScrollPane and then add that JScrollPane instance to your Container instance.
    So if your JPanel subclass is MyJPanel and the instance is myJPanel, then instead of using add (myJpanel), use:
     
    Ben Buchli
    Ranch Hand
    Posts: 83
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Thanks, Eddie, thats what I did.
    However, the problem is that when the shape gets drawn outside of the viewing window (which means it's not or only partially visible) then I want to have scroll bars available for the user to scroll.
    How do I do that?? I have the scrollbars, but somehow, they stay disabled...
    thanks,
    Ben
     
    Ranch Hand
    Posts: 1535
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    The idea is to override getPreferredSize in our drawing component and to keep it apprised of the changing width and height requirements during the drawing. As we update the width and height fields we call revalidate on the drawing component which tells the scrollpane we need more space.
    Here's an example:
     
    Ben Buchli
    Ranch Hand
    Posts: 83
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Thanks a lot Craig,
    seems to work...
     
    Heroic work plunger man. Please allow me to introduce you to this tiny ad:
    the value of filler advertising in 2020
    https://coderanch.com/t/730886/filler-advertising
    reply
      Bookmark Topic Watch Topic
    • New Topic