jScrollPane.getComponents()
を使用してjscrollpaneのawtコンポーネントを取得できると思います。 私の質問です:コンテナのスイングコンポーネントを取得する方法はありますか?コンテナ内のすべてのスイングコンポーネントを取得する
3
A
答えて
2
すべてのSwingコンポーネントは、JComponentを拡張します。
Component[] comps = jScrollPane.getComponents();
ArrayList<JComponent> swingComps = new ArrayList<JComponent>();
for(Component comp : comps) {
if(comp instanceof JComponent) {
swingComps.add((JComponent) comp);
}
}
1
あなたはそれがJComponent
のインスタンスであるかどうかを確認するためにテストし、その後getComponents
を呼び出すことができます。メソッドは次のようになります。
ArrayList jcomponents = new ArrayList();
for (Component c : container.getComponents())
{
if (c instanceof JComponent)
{
jcomponents.add(c);
}
}
+1
これは本質的に他の答えと同じです。 –
スイングコンポーネントはAWTコンポーネントを拡張します。 (したがって 'getComponents()'は両方を報告します)。 –
干し草の中で針を見つけるために、ネストされた容器を通して再帰する必要がなく、重要な構成要素への参照を保持する方がよい場合がよくあります。 –
これまでのところ、2つの答えは再帰を使用せず、JScrollPaneのJViewport以外何も得られないことに注意してください。 –