有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使方法的数组可访问

我有一个方法,可以创建一个带有文件路径的数组

在程序中,我将按下“下一页”按钮,以显示数组[1]数组[2]中的下一项

但“下一页”按钮事件无法访问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


共 (5) 个答案

  1. # 1 楼答案

    您可以绘制一个看起来像按钮的图像。然后试着在一个线程中提问:如果mouseX大于buttonX,小于buttonX+buttonLength,mouseY大于buttonY,小于buttonY+buttonLength,你可以调用你的方法(可能是buttonIsPressed();)。我希望有帮助

  2. # 2 楼答案

    您必须将列表文件移到“geraListaArquivos”之外。您有多种选择:

    1-)您可以输入一个类变量。 2-)您可以输入一个实例变量。 3-)您可以提取到另一个类,这两种方法都可以访问。 4-)您可以创建一个内部类。 继续

    您必须选择更适合您的体系结构的

  3. # 3 楼答案

    使用数组[]的任何具体原因使用ArrayList

    如果需要专门使用数组,只需将ArrayList替换为Arrays即可

    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");
          ...
          ....
          }
    
    
    }
    

    如果您有任何问题,请告诉我

  4. # 4 楼答案

    将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();
        ....
        ....
        }
    }
    
  5. # 5 楼答案

    作为暴露数组的另一种选择,考虑使用^{}封装^ {< CD2>}及其^ {CD3>},如图所示{a2}。这将使按钮和菜单项共享的代码更容易本地化。通过这种方式,您可以允许用户单独操作File实例,而不是按顺序操作