修复Java.Swing绝对布局错位

时间:2017-02-05 04:06:17

标签: java swing layout layout-manager

我目前正在使用setLayout(null);(我的偏好),但像往常一样,很容易遇到定位问题。在这种情况下,我有AWT.Chooser和2 JButton个。像这样,Good One每次启动时,第二次JButton“取消”都会呈现按钮Y位置+它是height,就像这样,{{ 3}} 从我在整个Oracles教程和Stack上找到的内容来看,setLayout(null)导致了这个问题。为了解决这个问题,我经历了各种不同的布局,试图找到适合这种特殊设计的布局。我找到的是CardLayout,它似乎是最接近的。虽然让按钮处于正确的位置并不适合我的设计。 有没有办法解决这个问题而不使用布局管理器?我采取了错误的做法吗?我不挑剔,如果需要更改窗口大小是可行的,如果需要新设计,那也不是问题。提前谢谢!

1 个答案:

答案 0 :(得分:3)

  

我找到的是CardLayout,它似乎是最接近的。

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

enter image description here

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