RFR: 6510914: JScrollBar.getMinimumSize() breaks the contract of JComponent.setMinimumSize()

Alexander Zvegintsev azvegint at openjdk.org
Thu Aug 17 19:52:29 UTC 2023


On Thu, 17 Aug 2023 15:22:12 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

>> javadoc contract for JComponent.setMinimumSize(Dimension) states:
>> 
>> "Sets the minimum size of this component to a constant value. Subsequent calls to getMinimumSize will always return this value..."
>> 
>> However, JScrollBar overrides getMinimumSize() and breaks this contract - it always returns a minimum size derived from the preferred size even if you have previously called setMinimumSize()
>> 
>> Fix is made to check if mnimumSize is set and if so, honour it..
>
> test/jdk/javax/swing/JScrollBar/JScrollBarMinSizeTest.java line 43:
> 
>> 41:             bar.setMinimumSize(new Dimension(75, 0));
>> 42:             dim = bar.getMinimumSize();
>> 43:         });
> 
> In this case, it is safe to call these methods on the main thread.

The test can also be made headless.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/15325#discussion_r1297406897


More information about the client-libs-dev mailing list