有 Java 编程相关的问题?

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

java JList在50%的时间内不显示内容

我遇到了一个关于Java的问题,这个问题看起来很奇怪,所以我在互联网上什么也没找到

我想做一个小程序,只搜索特定的文件来删除它们。(目前还没有)现在,程序只搜索目录和子目录中的所有文件。它可以工作,但有时(大约50/50)我用来显示文件的JList不显示任何内容。(这就是我的问题)我不更改任何文件,对文件没有任何更改。jar,它只是有时候不显示元素

我还检查了数组是否为空,是否有元素,即使列表中没有显示它们。如果你知道解决这个问题的办法,那就太好了。多谢各位

下面是代码:(正如您所知,我并不是自己编写函数GetAllFiles的)

变量:

JList output;
JScrollPane outputScrollPanel;
DefaultListModel outputContent;
String[] files;
int fileIndex;
File source;

建造商:

    add(output = new JList());

    outputContent = new DefaultListModel();
    output.setModel(outputContent);

    add(outputScrollPanel = new JScrollPane(output));
    outputScrollPanel.setBounds(20, 20, getWidth() - 50, getHeight() - 40);

    files = new String[0];
    fileIndex = 0;

    SearchFiles();

SearchFiles与GetAllFiles一起工作(我尽了最大努力,没有使用多余的名称;)

private void SearchFiles() {
    source = new File("");
    GetAllFiles(source);
    for(int i = 0; i < fileIndex; i++) {
        outputContent.addElement(files[i]);
    }
}

private void GetAllFiles(File dir) {
    File[] fileList = dir.getAbsoluteFile().listFiles();        
    if (fileList != null) {
        for (int i = 0; i < fileList.length; i++) {
            if (fileList[i].isDirectory()) {
                GetAllFiles(fileList[i]);
            } else {
                if(fileIndex%100 == 0) {
                    IncreaseFileListSize();   
                }
                // i am so proud of this one: (it just adds the relative path + file name to the files-array
                files[fileIndex] = fileList[i].toString().substring(source.getAbsolutePath().toString().length()+1);
                fileIndex++;
            }
        }
    }
}

共 (0) 个答案