单击按钮时是否可以调用.Java文件?如果是这样的话?

时间:2014-04-23 17:08:10

标签: java class syntax

嗨我有一个带菜单的JFrame和菜单中的项目。单击该项时是否可以调用另一个我的download.java文件?如果是这样的话?感谢

download.java

     public class download {

     public static void main(String[] args) throws IOException {

  String fileName = "C:/Users\\Kris\\Downloads\\Death Grips - Get Got.mp3";  
      URL link = new URL("http://www.last.fm/music/Death+Grips/_/Get+Got"); 
     InputStream in = new BufferedInputStream(link.openStream());
     ByteArrayOutputStream out = new ByteArrayOutputStream();
     byte[] buf = new byte[1024];
     int n = 0;
     while (-1!=(n=in.read(buf)))
     {
        out.write(buf, 0, n);
     }
     out.close();
     in.close();
     byte[] response = out.toByteArray();

     FileOutputStream fos = new FileOutputStream(fileName);
     fos.write(response);
     fos.close();


     System.out.println("Finished. Your File is Located at"+ fileName );

}

}

从我的菜单类中我需要添加一个actionListener。但是如何在动作监听器中调用我的download.java文件呢?或者我如何在动作监听器中添加我的download.java代码?

 download.addActionListener(new ActionListener() {
     @Override
    public void actionPerformed(ActionEvent e) {

     //code to download the file??

      }});

在匆匆忙忙地打击我的问题后,最终找到了自己的答案。

            public void actionPerformed(ActionEvent e) {

        try {
            download.main(args);
        } catch (MalformedURLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

这是通过添加filename.main(args);从其他文件运行java文件的方法;

1 个答案:

答案 0 :(得分:1)

您编写的PHP太多了。 Java并不是那样的。如果您想要做的是在另一个类中调用功能,您可以直接调用它(如果它是静态的)或创建一个新对象,并在其上调用该方法。

要回答您的(已编辑)问题,您当前的代码存在一些问题。我的版本在这里:

public class Download {
    public boolean getFile(String filename, URL link) {
        try (InputStream src = new BufferedInputStream(link.openStream())) {
            try (FileOutputStream dest = new FileOutputStream(filename)) {
                byte[] buf = new byte[1024];
                while (true) {
                    int size = src.read(buf);
                    if (size == -1) {
                        break;
                    }
                    dest.write(buf, 0, size);
                }
            }
        } catch (IOException e) {
            return false;
        }
        return true;
    }

    public static void main(String[] args) throws MalformedURLException {
        String fileName = "./Death Grips - Get Got.mp3";
        URL link = new URL("http://www.last.fm/music/Death+Grips/_/Get+Got");
        Download d = new Download();
        if (d.getFile(fileName, link))
        {
            System.out.println("Yay!");
        } else
        {
            System.out.println("Boo!");
        }
    }
}

确定。所以解释一下。主要方法基本上允许您测试每件事情是否有效,您应该从代码中删除它。但是,这是ActionListener中需要的代码类型的示例。请记住,您要打开的URL是HTML页面,而不是mp3文件。话虽如此,其余的代码是非常不言自明的,并没有与您的功能有显着的不同。更可重复使用。 :)