I'm little out of my depth in offering anymore help. My suggestions were high level starting points worthy of consideration but I confess I haven't used JSVGCanvas myself. However my points are valid. As I say do a bit more digging with a debugger to see what's happening.
But rest assured as you might already know, this group is pretty good at replying to difficult problems like this one. Sean Hanlon wrote: > > Thanks for the suggestions. > > I tried increasing the heap to 128 MB and that has alleviated the heap > problem. I still can't get my head around how small resizes are no > problem, > but a maximize overflows the heap. I'd like to get to the bottom of that > for > peace of mind! > > Is there a more efficient way to display multiple canvases that I haven't > considered? > > I considered loading the canvas when the user selects that section (kind > of > a lazy load), but then the file IO might get dicey and it seems foolish to > continually load the document if a user toggles back and forth between > sections. > > In terms of performance - without major resizing - the CardLayout seems to > be working pretty well. Of course - not being able to resize is a pretty > major headache. > > I am going to try and explore why the JSVGCanvas isn't drawn full size > when > added to a JPanel after the JPanel has been initialization. If I can solve > that, I can avoid the CardLayout entirely. Any insight on that are > appreciated. > > So (very rough): > JPanel panel = new JPanel(new BorderLayout()); > //add panel to JFrame > > //when a user makes a selection add JSVGCanvas (which was preloaded and > stored in an ArrayList but not added to any Swing components) > panel.add(canvases.get(i), BorderLayout.CENTER); > panel.invalidate(); > > The behavior this is producing is the canvas is drawn in the lower right > corner of the panel and is not resized to fill the available space (as it > does when inside a CardLayout). Seems odd, I hope I just missed something > simple. > > Thanks again guys. > > -S > > On Fri, May 2, 2008 at 11:15 AM, Rob Davis-5 <[EMAIL PROTECTED]> > wrote: > >> >> >> >> Sean Hanlon wrote: >> > >> > I tried >> > removing the CardLayout and, on user selection, add the JSVGCanvas to >> the >> > panel directly (so on resizes only the currently visible canvas is >> > resized). >> > The problem I saw with this approach is that the JSVGCanvas wasn't >> scaled >> > and didn't maximize the display area as it does when I load them all at >> > initialization in the CardLayout. >> > >> > >> >> Guess you need to try and see how the initialisation of a JSVGCanvas >> within >> CardLayout is different when compared with initialising JSVGCanvas >> outside >> of it as you had attempted. >> >> Maybe CardLayout is registered with the Java windowing system so gets >> notified of a resize/maximise, and, when a JSVGCanvas is not initialised >> within it then it doesnt know that it should maximise. Try to check if >> your >> JSVGCanvas's are correctly hooked up to be made aware of any such events >> at >> the appropriate time. >> >> If it were me I'd be stepping through the batik source on Eclipse >> debugger >> to see what happens. >> >> Another thought is, does it matter, if you can resolve it by increasing >> the >> heap. Memory is quite cheap. I'd be more concerned about how fast it ran >> than memory usage. How much more do you need to increase the heap by? A >> lot? >> Or a little? >> >> >> >> -- >> View this message in context: >> http://www.nabble.com/Using-multiple-JSVGCanvas%27-in-a-CardLayout---Heap-Overflow-tp17018867p17021573.html >> Sent from the Batik - Users mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > -- View this message in context: http://www.nabble.com/Using-multiple-JSVGCanvas%27-in-a-CardLayout---Heap-Overflow-tp17018867p17022101.html Sent from the Batik - Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
