On Fri, 6 Oct 2023 07:25:54 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.
>
> Prasanta Sadhukhan has updated the pull request incrementally with one
> additional commit since the last revision:
>
> Revalidate component after add
just for fun, added
button.getParent().validate();
button.getParent().repaint();
after button.setSize(buttonSize); with not much effect. Which makes me think
the problem might be in the way the swing damage gets propagated to fx maybe?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/15960#issuecomment-1759977842