Java 没有BoxLayout的JComponent的对齐X和Y

Java 没有BoxLayout的JComponent的对齐X和Y,java,swing,alignment,layout-manager,boxlayout,Java,Swing,Alignment,Layout Manager,Boxlayout,我见过一些人在没有BoxLayout的情况下使用setAlignmentX()和setAlignmentY()方法(例如,在使用BorderLayout和其他类型的布局时) 这是正确的还是有什么作用?我没有找到任何文档来解释alignmentX和alignmentY在JComponents中的使用,但我一直认为它只会影响BoxLayouts。正如@camickr在评论中所说,alignmentX和alignmentY是JComponent的属性,布局管理员可以选择是否支持/尊重它们 在本机布局管

我见过一些人在没有BoxLayout的情况下使用
setAlignmentX()
setAlignmentY()
方法(例如,在使用BorderLayout和其他类型的布局时)


这是正确的还是有什么作用?我没有找到任何文档来解释alignmentX和alignmentY在JComponents中的使用,但我一直认为它只会影响BoxLayouts。

正如@camickr在评论中所说,
alignmentX
alignmentY
JComponent
的属性,布局管理员可以选择是否支持/尊重它们

在本机布局管理器中,只有
BoxLayout
支持此属性,因此,如果您尝试在其他布局(例如FlowLayout、BorderLayout…)上使用这些属性,则不会产生任何效果


当然,您可以选择是否尊重这些属性。

一些Swing布局管理器使用setAlignmentX方法。一些Swing布局管理器使用setHorizontalAlignment方法。相应的Y方法也是如此。我很少使用这些方法,所以我尝试了其中一种,如果不起作用,就尝试另一种。是的,这很混乱。@GilbertLeBlanc一些Swing布局管理器使用setHorizontalAlignment方法-布局管理器不使用此方法。这是某些回转组件的一种方法。当布局管理器设置的组件大小与组件首选大小不同时,它将允许组件决定如何在可用空间中绘制自身。我一直认为这只会影响BoxLayouts-布局管理器可以选择是否尊重这一点。我也只在BoxLayout中使用过它。如果布局管理器不支持该属性,则该值将被忽略。因此,如果将其与BorderLayout一起使用,则不会出现错误,但代码确实会令人困惑。谢谢@camickr!!(很抱歉我迟了答复)。这就是我一直在寻找的答案。然后AlignmentX和AlignmentY是每个JComponent的属性,布局可以选择是否使用它们。