スタンドアロンのJavaアプリケーションとJavaアプレットの両方で使用しているコンポーネントがあります。コンポーネントがアプレット内にあるかどうかをコンポーネント内からどのように判断できますか?
また、アプレットで実行していることがわかったら、どうすればアプレットにアクセスできますか?
SwingUtilities.getAncestorOfClassによる再帰なしで実行できます
Component.getParent()
コンテナツリーの一番上に到達するまで繰り返し呼び出し、次にそのコンテナがであるかどうかを確認することで、それを実行できるはずだと思いますinstanceof Applet
。
以下のコードは完全にテストされていません。
boolean isInAnApplet(Component c)
{
Component p = c.getParent();
if (p != null) {
return isInAnApplet(p);
} else {
return (c instanceof Applet);
}
}