2012-07-11 51 views
0

java.awt.Component的java文档中,方法getComponentAt描述了它可以返回一个组件或一个子组件。awt中的子组件是什么,你可以检索它们吗?

什么是子组件? 有没有办法从组件中检索所有子组件?

子组件这里提到:http://docs.oracle.com/javase/7/docs/api/java/awt/Component.html

+1

它是由另一个组件持有的组件。您可以通过编写调用getComponents []的递归方法来获取所有组件/子组件。问题:为什么是AWT而不是Swing? – 2012-07-11 15:27:37

+0

@HovercraftFullOfEels你不能在组件上调用getComponents,对吧?我正在使用AWT,因为我正在为使用AWT的在线小程序创建客户端。我无法访问小程序的代码。 – Tyilo 2012-07-11 15:30:14

回答

2

AWT采用Container作为一类特殊的Component可以含有其他成分。所以所有组件的枚举被称为Container.getComponents()。为什么他们决定让Component类的子组件访问而不是Container类,我不知道,但事实就是这样。原因可能是getComponentAt也会返回调用方法的组件,如果该位置没有子组件,并且它实际上包含给定的位置。

因此,要查找所有子组件,请检查组件是否是容器。如果不是,那么它就不能有子组件。如果是,则投到Container并访问它们。如果您还需要子子组件,也可以调用。