On Thu, 28 Sep 2023 09:43:25 GMT, Prasanta Sadhukhan <[email protected]> wrote:
> SwingNode does not update its internal cache of Swing pref/max/min height and > widths when its JComponent content's corresponding size constraints are > updated. As such, it isn't resized to honor those size constraints. > > JLightweightFrame does install a PropertyChangeListener for "preferredSize", > "maximumSize", and "minimumSize" properties, but this only happens via a > ContainerListener which is not added until after the content has already been > added to the content pane, and since the application cannot call this methods > directly as per the documentation for the SwingNode.resize() method: > `Applications should not invoke this method directly. If an application needs > to directly set the size of the SwingNode, it should set the Swing > component's minimum/preferred/maximum size constraints which will be > propagated correspondingly to the SwingNode and it's parent will honor those > settings during layout.` > > so the fix is to add the listener as soon as the component is added to the > JLightweightFrame's content. Fix is updated to register listener before component is added/removed. @andy-goryachev-oracle @aghaisas Can you please review this FX fix? There is some SwingNode rendering issue still due to [JDK-8298796](https://bugs.openjdk.org/browse/JDK-8298796) but size update issue should be fixed.. ------------- PR Comment: https://git.openjdk.org/jdk/pull/15960#issuecomment-1746177697
