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); 

  1. override getpreferredscrollableviewportsize jscrollpane

  2. override getpreferredsize instead of component.setpreferredsize(new dimension(800, 600));

  3. dimension returns jpanel must larger dimension jviewport (visible rectangle jscrollpane), otheriwse jscrollbar(s) is/are not visible

  4. for better sooner, post sscce, short, runnable, compilable, jframe jcomponent inside jscrollpane

  5. add super.paintcomponent(g); 1st. code line inside paintcomponent, coordinates zoom_in/out take getheight/weight (see point 2nd. getpreferredsize)


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -