如何将一个字符串数组从一个单独的方法添加到一个JList模型中?

问题描述 投票:0回答:1

我有一个JList模型,它希望我指定字符串数组中的索引("array[i]"而不仅仅是 "array"),以便将其添加为元素。否则它只是返回哈希码。如果它来自一个单独的方法,我怎么能添加它呢?我找到的唯一方法是每次需要的时候就复制粘贴该方法的代码,这似乎不是一个好的解决方案。

这就是我想添加它的地方。

    DefaultListModel model = new DefaultListModel();
    for (int i = 0; i < fileFinder.thing().length; i++) {
        model.addElement(fileFinder.thing());
    }
    JList list = new JList(model);
    list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    scrollPane.setViewportView(list);

这就是这个方法的样子

    public class fileFinder {
    public static String[] thing() {
        File file = new File(".\\at9snfsbs");
        File[] files = file.listFiles(new FilenameFilter() {

            @Override
            public boolean accept(File dir, String name) {
                if (name.toLowerCase().endsWith(".at9")) {
                    return true;
                } else {
                    return false;
                }
            }
        });
        String[] fileNames = new String[files.length];
        for (int i = 0; i < files.length; i++) {
            fileNames[i] = files[i].getName();
        }

        return fileNames;
    }
}

我绝对不是一个好的或者有经验的程序员 所以任何帮助都是有用的!

java arrays string swing jlist
1个回答
1
投票

把它改成。

DefaultListModel model = new DefaultListModel();
String[] things = fileFinder.thing();
for (String thing : things) {
    model.addElement(thing);
}
JList list = new JList(model);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scrollPane.setViewportView(list);

你也可以使用长版本的for循环,像这样。

DefaultListModel model = new DefaultListModel();
String[] things = fileFinder.thing();
for (int i = 0; i < things.length; i++) {
    model.addElement(things[i]);
}
JList list = new JList(model);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scrollPane.setViewportView(list);
© www.soinside.com 2019 - 2024. All rights reserved.