4
私はスイングコンポーネントがたくさんあるアプリケーションをいくつかのコンテナに入れています。 私は部品が入っているコンテキストに基づいて情報を表示、右クリックしてポップアップメニューを実装していますコンポーネントが特定のコンテナ内にあるかどうかを調べる
を例与えるために:私はJTextFieldの上で右クリックした場合 を、私は「foo」を表示させたいですテキストフィールドがJScrollPane内にある場合はポップアップ、それ以外の場合は「bar」しかし、JTextField自体は、他のいくつかのJPanelにネストすることができます。
私はこのような何か行うことができます:
public static boolean isInScrollPane(JComponent comp) {
Container c = comp.getParent();
while (c != null) {
if (c instanceof JScrollPane) {
return true;
} else {
c = c.getParent();
}
}
return false;
}
をしかし、私はそこにはるかに優れたソリューションがすでに利用可能であり、私はそれを見つけることができませんでした賭けます。
私にヒントを与えてもらえますか?
ああ、私はすでにそれが簡単だろうと思っていました。私は_SwingUtilities_を見ましたが、これを見ませんでした。ありがとう! – moeTi