2012-01-08 68 views
0

我认为我有一个很奇怪的问题。我正在使用一个类 - 在一个已经存在的代码中 - 主要用于打开一个Save Dialog窗口。使用该代码是以下:用于保存文件的类,每次都以不同的名称保存它

String savedName; 


if (OperatingSystem.isMacOSX()) { 
    savedName = showFileDialog(parentView, dialogTitle, contentType, name, true); 
} else { 
    savedName = showFileChooser(parentView, dialogTitle, contentType, name, true); 
} 

所以我所做的就是把它变成块注释,现在我想保存的项目,由每一个类被调用时使用不同的名称。这个名字将从使用此代码的阵列中获取:

int m = 0; 

for (HomePieceOfFurniture piece : home.getFurniture()) { 
    if (piece.isVisible()) { 
     m++; 
    } } // A table used to save the names of the furniture and initialize it 
String [] Furniture = new String[m]; 
m = 0; 

for (HomePieceOfFurniture piece : home.getFurniture()) { 
    if (piece.isVisible()) { 
     // "a" is used to save the name of the furniture piece 
     String a = piece.getName(); 
     Furniture[m] = a; 
     //System.out.printf(Furniture[m]); 
     m++; 
     } 
    } 

我想要的是一个提示,以了解如何理解该类如何被调用。

在此先感谢。

+0

如何调用什么类?如果要调用文件名作为参数的原始方法(第一个片段),请修改该方法以接受名为'savedName'的附加参数,删除方法内部的声明,其余部分保持原样。 – 2012-01-08 17:06:39

+0

您注释掉的代码不保存文件 - 它只允许用户选择文件位置和名称。 – Paul 2012-01-08 17:15:11

+0

我认为你是对的...我会尝试:) – 2012-01-08 17:24:42

回答

0

如果要调用文件名作为参数的原始方法(第一个片段),请修改该方法以接受名为savedName的附加参数,删除方法内的声明,并保持原样。

public void someMethod(String savedName) { 
    // The commented-out code that used to ask for a filename. 
    // if (OperatingSystem.isMacOSX()) { 
    //  savedName = showFileDialog(parentView, dialogTitle, contentType, name, true); 
    // } else { 
    //  savedName = showFileChooser(parentView, dialogTitle, contentType, name, true); 
    // } 

    // Rest of method stays the same. 
    File f = new File(savedName); 
    // etc. 
} 

然后从创建文件名的新代码中调用它。