-1

我在扩展 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);

}
4

1 回答 1

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);
}
于 2013-03-23T17:49:58.887 回答