修复 Java.Swing 绝对布局错误

Fixing Java.Swing absolute layout misposition

我目前正在使用 setLayout(null);(我的偏好),但像往常一样,运行 很容易陷入定位问题。在这种情况下,我有一个 AWT.Chooser 和 2 个 JButton。像这样,Good One Every so often upon launch the 2nd JButton "Cancel" will render the buttons Y position + it's height, Like so, Bad One 从我在整个 Oracles 教程和 Stack 上找到的内容来看,是 setLayout(null) 导致了这个问题。为了解决这个问题,我尝试了各种不同的布局,试图找到适合这个特定设计的布局。我找到的一个是 CardLayout,这似乎是最接近的。虽然让按钮处于正确的位置不符合我的设计。 有没有办法在不使用布局管理器的情况下解决这个问题?我对此采取了错误的方法吗?我并不挑剔,如果需要,更改 window 大小是可行的,如果需要新设计,那也不是问题。提前致谢!

One I found was CardLayout which seems to be the closest.

卡片布局?这没有意义,因为这不是组件定位的布局,而是组件交换。你确定你不是在说另一个?我自己,我通常 nest JPanels,每个都有自己的布局管理器,这样可以轻松创建易于维护的复杂 GUI。

对于您的 GUI,我会给整个 GUI 一个 BorderLayout 并将中央 JPanel 添加到 BorderLayout.CENTER 位置。我将创建一个使用 FlowLayout(FlowLayout.TRAILING) 作为其底部布局的 JPanel,并将我的 JButton 添加到其中,然后将其添加到主 JPanel 的 BorderLayout.PAGE_END 位置。如何解决这个问题的可能性是无穷无尽的。