#java #arrays #file #oop #location
#java #массивы #файл #ооп #Расположение
Вопрос:
Я пытаюсь создать игру памяти с 16 картами в Java Swing, я создал папку для всех необходимых изображений в папке рядом с самим Java-приложением:
(что C:Usersedwineclipse-workspaceA3 — Javasrceindopdracht1Plaatjes.java )
и папка Images, которая содержит 8 разных изображений:
C:Usersedwineclipse-workspaceA3 — Javasrceindopdracht1Изображения
Теперь я хочу дважды поместить все 8 изображений в массив, используя цикл for . По какой-то причине Java не распознает второй файл выше. Почему это так? Мой код:
package eindopdracht1;
import java.io.*;
import javax.swing.*;
public class Plaatjes extends JButton {
private File[] files = new File(
System.getProperty("C:\Users\edwin\eclipse-workspace\A3 - Java\src\eindopdracht1\Images"))
.listFiles();
private File[] afbeeldingen = new File[16];
public Plaatjes() {
for (int i = 1; i < files.length * 2; i = i 2) {
afbeeldingen[i - 1] = files[i];
afbeeldingen[i] = files[i];
System.out.println(files[i]);
}
}
}
Комментарии:
1. Я бы предположил, что
System.getProperty
это не делает того, что вы думаете. Это определенно не сработает, указав путь к нему.File
имеет конструктор, который принимает путь. Вы должны удалитьSystem.getProperty
часть.2. Если бы ваш путь был сохранен в системном свойстве, тогда имело бы смысл использовать
System.getProperty
для извлечения пути из этого системного свойства, используя имя этого свойства.
Ответ №1:
вы должны изменить эти строки кода :
private File[] files = new File(
System.getProperty("C:\Users\edwin\eclipse-workspace\A3 -Java\src\eindopdracht1\Images"))
.listFiles();
Для
private File[] files = new File("C:\Users\edwin\eclipse-workspace\A3 - Java\src\eindopdracht1\Images").listFiles();