在Java中运行另一个类中对象的方法

时间:2013-03-23 17:33:06

标签: java swing

我在扩展JFrame的类中有一个ActionListener。单击按钮时,我需要设置在Main类中创建的JFrame扩展对象的可见性。在此示例中,单击该按钮将使具有该按钮的现有对象变为不可见,并且它将使另一个JFrame对象变为可见。

ActionListener位于一个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);

}

1 个答案:

答案 0 :(得分:0)

首先,您应该尊重Java命名约定,并为类和变量选择更好的名称。如果要在对象上调用方法,则需要对此对象的引用。所以main方法只需要将第二帧的引用传递给第一帧:

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);
}