我有一个方法可以创建一个带有文件路径的数组......
在程序中我将按下“下一页”按钮,在数组[1]数组[2]中显示tem下一项......
但是按钮Next Page Cant的事件访问了在metlhod
中创建的数组我知道如何在方法之间传递数组,但是如何创建一个按钮事件来访问它?!
代码是如此之大,但它是这样的:
public class gui {
public void actionPerformed(ActionEvent arg0) {
->>>>> i want the array accessible from here,
}
public void geraListaArquivos(String subdir, String matricula) {
....
....
....
File[] listOfFiles = folder.listFiles();
...
....
}
}
我想要访问ListOfFiles中的值,在ActionPerfomed,我该怎么做; x?
答案 0 :(得分:1)
使用数组[]的任何具体原因? 使用ArrayList。
如果你需要专门使用Arrays,只需用数组替换ArrayList。
public class gui {
public static List<String> listOfFiles = new ArrayList<String>();
public void actionPerformed(ActionEvent arg0) {
->>>>> i want the array accessible from here,
// Access the listOfFiles Here.
for(int count=0; count<listOfFiles.size(); count++)
{
// DO YOUR OPERATION HERE
}
}
public void geraListaArquivos(String subdir, String matricula) {
....
....
....
listOfFiles.add("FileName");
...
....
}
}
如果您有任何问题,请告诉我。
答案 1 :(得分:1)
作为公开数组的替代方法,请考虑使用Action
封装File
及其ActionListener
,如图here所示。这样可以更轻松地本地化按钮和菜单项共享的代码。通过这种方式,您可以允许用户单独操作File
实例,而不是按顺序操作。
答案 2 :(得分:0)
将listOffFiles声明移到方法之外。然后你仍然可以从geraListaArquivos方法填充它并从你的事件处理程序访问它,如下所示:
public class gui {
private File[] listOfFiles = null;
public void actionPerformed(ActionEvent arg0) {
// do something with listOfFiles here
}
public void geraListaArquivos(String subdir, String matricula) {
....
....
....
listOfFiles = folder.listFiles();
....
....
}
}
答案 3 :(得分:0)
您必须将listOfFiles移到“geraListaArquivos”之外。你有各种选择:
1 - )你可以放入一个类变量。 2 - )您可以输入实例变量。 3 - )您可以提取到另一个类,可以访问这两种方法。 4 - )你可以做一个内部阶级。 继续......
您必须选择适合您的架构的内容。
答案 4 :(得分:0)
您可以绘制一个看起来像按钮的图像。然后尝试在线程中询问:如果mouseX大于buttonX且小于buttonX + buttonLength且mouseY大于buttonY且小于buttonY + buttonLength,则可以调用您的方法(也许是buttonIsPressed();)。我希望它有所帮助。