【问题标题】:How to call another Java file in ActionListener?如何在 ActionListener 中调用另一个 Java 文件?
【发布时间】:2012-05-24 15:57:32
【问题描述】:

我正在为我的程序创建一个图形界面。当我按下开始按钮时,我希望它调用另一个程序。

下面是我的监听器代码:

private class ButtonHandler implements ActionListener 
{
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource()==startButton)
            ?????
    }
}

我该怎么办?我打算调用另一个 Java 文件 (Start.java)。

【问题讨论】:

  • 1) 不要再将它们视为“Java 文件”。他们是班级。 2) 你在actionPerformed() 中的操作方式与main() 完全相同 3) 在尝试之前long 及早弄清楚这些简单的事情GUI 编程。
  • 您想开始考虑的不是“另一个 Java 文件”,而是您想在另一个对象上执行方法。该文件是人们编写软件的产物 - 但在精神上,您希望采用对象和方法的模型。
  • 这个问题已经得到解答。通过这个[链接][1]。 [1]:stackoverflow.com/questions/1346978/…
  • 好的。感谢您的回答和建议.. 我会注意到这一点。再次感谢你们。

标签: java swing jbutton actionlistener


【解决方案1】:

如果它属于您的项目并且已经包含在类路径中,您可以调用 Start 类的所需方法。

如果你想一起启动另一个进程,你必须使用 http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#exec(java.lang.String)

【讨论】:

    【解决方案2】:

    如果你想在那里创建一个新的 Start 实例,你可以这样做:

    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource()==startButton) {
           Start myStart = new Start();
           myStart.foo();
        }
    }
    

    或者,如果您已经拥有对现有 Start 对象的引用,则只需调用其方法即可。需要注意的是,如果 Start 的任何方法需要很长时间才能完成或占用大量资源,您需要在后台线程中执行它们,例如 SwingWorker 对象提供的。

    请注意,我的回答非常笼统,可能在细节上有点模糊,但我无法提供任何更细粒度的细节,直到您在这里告诉我们更多关于您的程序结构、您的类和您的具体问题的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      • 2014-08-31
      • 2019-02-04
      相关资源
      最近更新 更多