正しく理解できたら、ゲッターとセッターを使用してください。つまり、インスタンス を返すメソッドがありcustomPanel
ます。public
getButton()
JButton
class CustomPanel extends JPanel {
JButton button=new JButton("Some button");
public JButton getMyButton() {
return button;
}
}
class Test {
CustomPanel cp=new CustomPanel();
void someMethod() {
JButton b= cp.getMyButton();
}
}
アップデート
コメントによると:
JPanelに10個または20個の異なるコンポーネントがある場合、多くのメソッドを作成せずにそれらに到達する方法はありますか?
インスタンスを呼び出すだけgetComponentCount
でJPanel
、を使用して繰り返すとfor loop
、getComponentAt(int i)
次のすべてのコンポーネントにアクセスできるようになりますJPanel
。
CustomPanel cp=...;//this class extends jpanel
for(int i=0;i<cp.getComponentCount();i++) {
Component c=cp.getComponentAt(i);
if( c instanceof JButton) {
//do something
}
}
更新2
同じクラスである必要があるが、それ以外は別々のオブジェクトとして扱われるオブジェクトが2つ以上ある場合、提供されたループを使用してそれらを区別するにはどうすればよいですか。
これを見てsetName(String name)
、getName
インスタンスJButton
に、によって取得できる一意の名前を割り当てることができますgetName()
。または、ボタンを使用setActionCommand(String name)
しgetActionCommand()
て別のボタンと区別するために、後者の方が好きです。または、経由して彼らのテキストを使用することもできますgetText()