Java 如何获取JFrame中位于特定布局位置的组件

Java 如何获取JFrame中位于特定布局位置的组件,java,swing,layout,jframe,border-layout,Java,Swing,Layout,Jframe,Border Layout,我有一个JFrame,它使用BorderLayout。如何获取此JFrame左侧、右侧或任何其他位置的所有组件?正如@brano所建议的,您可以通过JFrame的contentPane的LayoutManager访问这些组件 例如,假设您希望获取位于BorderLayout.WEST上的组件(并且您的JFrame称为frame),您可以执行以下操作: final BorderLayout layout = (BorderLayout) frame.getContentPane().getLayo

我有一个
JFrame
,它使用
BorderLayout
。如何获取此
JFrame
左侧、右侧或任何其他位置的所有组件?

正如@brano所建议的,您可以通过
JFrame
contentPane
LayoutManager
访问这些组件

例如,假设您希望获取位于
BorderLayout.WEST
上的组件(并且您的
JFrame
称为
frame
),您可以执行以下操作:

final BorderLayout layout = (BorderLayout) frame.getContentPane().getLayout();
final Component west = layout.getLayoutComponent(BorderLayout.WEST);

不过有一点值得注意:
getLayoutComponent
方法不属于
LayoutManager
:因此,您必须知道并确保您的
布局是@brano建议的实际的
边界布局,您可以通过
JFrame
contentPane
LayoutManager
访问这些组件

例如,假设您希望获取位于
BorderLayout.WEST
上的组件(并且您的
JFrame
称为
frame
),您可以执行以下操作:

final BorderLayout layout = (BorderLayout) frame.getContentPane().getLayout();
final Component west = layout.getLayoutComponent(BorderLayout.WEST);

不过有一点值得注意:
getLayoutComponent
方法不属于
LayoutManager
:因此,您必须知道并确保您的
layout
是一个实际的
BorderLayout

,这应该可以解决您的问题:@YankiTwizzy在问题解决后不要忘记;)这应该可以解决您的问题:@YankiTwizzy一旦您的问题得到解决,请不要忘记;)