swing - Java Adding JScrollPane to JComponent -
java: have jcomponent draws image can rescaled. need have scroll bars appear when image becomes large. passed jcomponent jscrollpane , added jscrollpane north section of jframe, scroll bars appeared when jframe resized not when image rescaled. set preferred size of jcomponent didn't work.
i tried adding jcomponent jpanel first passing jpanel jscrollpane didn't work either.
here portion of code inside constructor of jframe:
jcomponent component = new jcomponent() { public void paintcomponent(graphics g) { graphics2d g2 = (graphics2d) g; g2.drawimage(image1, zoom, this); } }; component.setpreferredsize(new dimension(800, 600)); jscrollpane scroller = new jscrollpane(component); add(scroller, borderlayout.center);
override
getpreferredscrollableviewportsize
jscrollpane
override
getpreferredsize
instead ofcomponent.setpreferredsize(new dimension(800, 600));
dimension
returnsjpanel
must largerdimension
jviewport
(visiblerectangle
jscrollpane
), otheriwsejscrollbar
(s) is/are not visiblefor better sooner, post sscce, short, runnable, compilable,
jframe
jcomponent
insidejscrollpane
add
super.paintcomponent(g);
1st. code line insidepaintcomponent
, coordinates zoom_in/out takegetheight
/weight
(see point 2nd.getpreferredsize
)
Comments
Post a Comment