为什么我不能将'file'变量传递给actionPerformed?

时间:2016-04-29 18:17:35

标签: java user-interface

我正在尝试编写一个Java GUI,它接收包含歌曲信息的文件,允许用户编辑它,然后输出具有相同名称的新文件。文件路径由运行时参数提供,因此用户可以运行以下程序:

gridview.ExportToXlsx(file)

这就是我在main方法中初始化文件的方式(我假设因为文件路径是作为运行时参数输入的,所以必须将它分配给main方法中的变量。我不确定是否我我是对的):

java myProgram myFile

在GUI中选择“退出”按钮后,程序应该获取存储的数据并使用相同的文件路径输出(基本上覆盖旧文件)。无论我尝试什么,我似乎无法将'file'传递给actionPerformed方法,这应该发生在那里。基于其他关于将参数传递给actionPerformed的问题的回答,这是我试图让它工作的尝试:

public class SongDatabase extends JFrame
{

public SongDatabase(File file) throws IOException
{
    setSize(700, 500);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel panel = new Panel(file);
    this.add(panel);
}

public static void main (String [] args) throws IOException
{
    File file = null;
    if (args.length == 1)
    {
        file = new File(args[0]);
    }
    else
    {
        System.out.print("No source file entered. Create source file (1 for yes 2 for no)?");
        Scanner input = new Scanner(System.in);
        int choice = input.nextInt();
        if (choice ==2)
        {
            System.exit(0);
        }
        else
        {
            file.createNewFile();
        }
    }

    JFrame frame = new SongDatabase(file);
    frame.setVisible(true);
}

}

但这似乎不起作用。无论出于何种原因,我得到一个FileNotFoundException。是否有更好的选择将'file'传递给actionPerformed?

编辑:我知道路径名或文件不是问题所在,因为当删除违规代码时,程序会正确导入文件并按预期运行。在调试代码时,myFile确实有正确的路径,所以我认为它应该可以正常工作,但事实并非如此。

0 个答案:

没有答案