2012-07-11 52 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並訪問它們。如果您還需要子子組件,也可以調用。