How does a JLabel or JButton notify a JScrollPane that the view size has changed (for example when an icon has been set) so it can determine whether showing scrollbars are necessary?
How could I implement similar behaviour to display an image with a simple JPanel without resorting to the aforementionned components?
P.S: I’ve looked through the source code and so far all I see is that a Component is referred to as “view” and is passed on to a JView or JViewport which registers some listeners. From there on things seem unclear.
As noted in the
JScrollPaneAPI, unless you change the policy, “both horizontal and vertical scrollbars appear whenever the component’s contents are larger than the view.” Oncepack()has sized theWindow“to fit the preferred size and layouts of its subcomponents,” any subsequent changes are seen by the scroll pane when the container is validated and repainted. See Painting in AWT and Swing for more.