• 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 Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Monitoring window resizes

 
Ranch Hand
Posts: 1078
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Okay this is a really really stupid question but for some reason it's escaping me. I have a JDesktopPane with two JInternalFrames, I want to keep them at a certain ratio, like for example each taking up half the screen. Setting that up is easy to begin with but how do I know when the main JFrame has been resized so that I can resize the internal frames to be half the new size?
 
author and iconoclast
Posts: 24207
46
Mac OS X Eclipse IDE Chrome
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
There are no stupid questions.
Implement a ComponentListener, add it to the JFrame using addCOmponentListener(). The ComponentListener's componentResized() method will be called when the JFrame has been resized.
 
Ken Blair
Ranch Hand
Posts: 1078
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Righto, then I'm safe to get the size of the thing and resize my internal frames just as I do during initalization? I mean it's not going to be called during the resize or anything like that so I don't have to worry about whether or not it's going to return the correct size and what not.
 
Ken Blair
Ranch Hand
Posts: 1078
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Actually I'd also like to post a couple follow up questions that are somewhat related, no sense in creating a new thread.
First of all, the point of doing this was so that I could 'dock' these frames so that one frame takes up the left half and another the right half. I also want to add in functionality so that if the user resizes these windows that if they have chosen to have the windows scale with the frame that it will maintain it's current ratio. i.e. if it's half it will still be half. That's simple enough if I know that I want to it to be half the screen, however, if the user changes the size to something different by resizing the internal frame then I no longer want it to be half, I want it to scale in size and position based upon what it is now.
So my question is how do I go about implementing this? I need some way of checking to see what the internal frame's sizes are before resizing so I can maintain the same ratio. Is there an easy way of doing this? Do I have to add a component listener on every internal frame and when they are resized record what their size and location are and then use that when I determine positions when my main frame is resized or what?
The other thing is I have an ImageDisplay widget that I created, it's for viewing, zooming, and otherwise manipulating an image. One of the things I want is for the scroll wheel to zoom in and out of the image. I've successfully implemented this feature, however, I've not found a good way of having it work all the time. In other words it only works when the ImageDisplay has focus, I want it to always work and for it to do so on the last ImageDisplay that had focus (in case there is more than one, which is a possibility, though I doubt it).
Thanks.
[ January 18, 2004: Message edited by: Ken Blair ]
 
reply
    Bookmark Topic Watch Topic
  • New Topic