On Sun, 20 Apr 2025 08:19:15 GMT, Jeremy Wood <d...@openjdk.org> wrote:
> This PR changes how the BorderLayout positions components when they don't fit > inside a container. > > This should have no effect on BorderLayouts that match or exceed their > preferred size. > > (The name of this PR/ticket is a little misleading: this in no way relates to > `component.getMinimumSize()`.) > > Here is part of a comment in that ticket that sums up what this PR is trying > to fix: >> Instead of the South Component being placed partially offscreen as Windows >> does, it is often placed on top of the North Component. Indeed, >> BorderLayout.layoutContainer() always places the South Component flush with >> the bottom of the Container and does not check if the Container is smaller >> than the minimum size, or if the North and South Components overlap. > > Previously child components could: > A. be assigned negative (x,y) coordinates > B. be assigned negative widths or heights > C. overlap other child components > D. be assigned dimensions that don't fit inside the target container > > This PR will instead constrain certain values. Now child components may be > given a width/height of zero pixels, but they should never show the 4 > behaviors stated above. > > We encountered this basic problem last week at work (we could end up with a > component with a negative height). Our work-around was more complex than this > PR: we wrote a modified BorderLayout that would switch to using > `component.getMinimumSize()` when the preferred size wouldn't fit. IMO that > is a better option all-around, but it is dangerously invasive for an OpenJDK > proposal. I'm happy to discuss that idea further, though, if anyone here > disagrees. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/jdk/pull/24772