Как я могу добавить массив строк из отдельного метода в модель JList? - PullRequest
1 голос
/ 02 мая 2020

У меня есть модель JList, в которой я хочу указать индекс («массив [i]», а не просто «массив») в моем массиве строк, чтобы добавить его в качестве элемента. В противном случае он просто возвращает код ha sh. Как я могу добавить его, если он исходит из отдельного метода? Единственный способ, который я нашел, это просто копировать и вставлять код метода каждый раз, когда он мне нужен, что не кажется хорошим решением.

Вот где я хочу добавить его:

    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;
    }
}

Я ни в коем случае не хороший или опытный программист, поэтому любая помощь будет полезна!

1 Ответ

1 голос
/ 02 мая 2020

Измените его на:

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);

Вы также можете использовать длинную версию для l oop, например:

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