1

我的 GUI 中有一个按钮,应该关闭它的窗口。但是,它的事件处理程序位于一个AbstractAction子类中,该子类位于与JFrame. 因此,我看不到一种方法来告诉JFrame关闭我的AbstractAction.

这是我的代码的基本布局:

public PointWindow()
  {
    initialize();
  }

  public void initialize()
  {
    JFrame frame = new JFrame();
    // JFrame stuff
    frame.setContentPane(createGUI());
    frame.setVisible(true);
  }

  public JPanel createGUI()
  {
    JPanel gui = new JPanel();

    // Code....

    class MakeGraphACT extends AbstractAction 
    {
      public void actionPerformed(ActionEvent e)
      {
        frame.setVisible(false);  // <--- How to get this to work?
        frame.dispose();          // <---
        new GraphWindow(pointList);
      }
    }

    //Code...

    return gui;
  }

我是否在规划代码方面做得不好,或者我只是遗漏了一些明显的东西?

4

1 回答 1

2

您需要将帧作为final参数传递给该createGUI()方法。
然后,您将能够从内部类中访问它。

于 2012-11-21T01:34:40.307 回答