-1

JFrame を拡張するクラスに ActionListener があります。ボタンをクリックすると、メイン クラスで作成された JFrame 拡張オブジェクトの可視性を設定する必要があります。この例では、ボタンをクリックすると、そのボタンを持つ既存のオブジェクトが非表示になり、別の JFrame オブジェクトが表示されます。

ActionListener は 1 つの JFrame クラス内にあり、オブジェクトは Main クラス内に作成されます。JFrame クラス内の ActionListener から Main クラス内の特定のオブジェクトのメソッドを実行するにはどうすればよいですか?

私はすでに setVisibility メソッドを持っていますが、別のクラス内に存在するオブジェクトでこのメソッドを実行するように ActionListener に指示する方法が不明です。

メインクラス:

Object1 jFrameObj1 = new Object1();

Object2 jFrameObj2 = new Object2();

Object1 クラス (アクション リスナー内):

if(event.getSource() == button){

  jFrameObj1.setVisible(false);

  jFrameObj2.setVisible(true);

}
4

1 に答える 1

0

まず、Javaの命名規則を尊重し、クラスと変数にはるかに適切な名前を選択する必要があります。オブジェクトのメソッドを呼び出す場合は、このオブジェクトへの参照が必要です。したがって、mainメソッドは、2番目のフレームへの参照を最初のフレームに渡す必要があります。

Object2 frame2 = new Object2();
Object1 frame1 = new Object1(frame2);

次に、Object1クラスで:

private Object2 frameToDisplayWhenButtonIsClicked;

public Object2(frameToDisplayWhenButtonIsClicked) {
    this.frameToDisplayWhenButtonIsClicked;
}

...

public void actionPerformed(ActionEvent e) {
    setVisible(false);
    frameToDisplayWhenButtonIsClicked.setVisible(true);
}
于 2013-03-23T17:49:58.887 に答える