Я получаю:
Exception in thread "main" java.lang.NullPointerException
at Display.readFile(Display.java:55)
at Display.<init>(Display.java:36)
at Expordium.play(Expordium.java:15)
at Expordium.main(Expordium.java:8)
Это один класс моего кода:
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.html.HTMLDocument.Iterator;
import java.awt.image.BufferedImage;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
public class Display extends JPanel implements Runnable{
private JFrame f = new JFrame("Expordium");
private Collection<Block> elements = new ArrayList<Block>();
private Wall wall;
private String file;
private Expordium game;
private String[][] strLevel;
public void start(Expordium g){
strLevel = new String[30][10];
game=g;
f.getContentPane().add(new Display());
f.setSize(960 , 320);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
Display(){
readFile();
for(int i=0; i<30; i++){
for(int j=0; j<30; j++){
if(strLevel[i][j].equals("*")){
elements.add(wall=new Wall(i*16,j*16,true,"C:/Program Files (x86)/Software/eclipse/Programs/Expordium/Picture/Block/Grass-T.PNG"));
}
}
}
}
public void run() {
repaint();
}
public void paint(Graphics g){
g.setColor(Color.WHITE);
java.util.Iterator<Block> iterator = elements.iterator();
while(iterator.hasNext())
((Block) iterator.next()).draw(g);
}
private void readFile() {
int num=0;
String loc ="C:/Program Files (x86)/Software/eclipse/Programs/Expordium/Level/Level ";
loc.concat(game.getLevel());
loc.concat(".txt");
File Level = new File(loc);
file=TextFile.getContents(Level);
for(int i=0; i<30; i++){
for(int j=0; j<30; j++){
strLevel[i][j]=file.substring(num, num+1);
num++;
}
}
}
}
Также я получаю его по строкам
loc.concat (".txt");
strLevel [i] [j] = file.substring (num, num + 1);
РЕДАКТИРОВАТЬ !!!!!!!Я изменил код на
private void readFile() {
int num=0;
String loc ="C:/Program Files (x86)/Software/eclipse/Programs/Expordium/Level/Level 1.txt";
File Level = new File(loc);
file=TextFile.getContents(Level);
for(int i=0; i<30; i++){
for(int j=0; j<30; j++){
System.out.println(file);
strLevel[i][j]=file.substring(num, num+1);
num++;
}
}
}
Теперь я получаю
Исключение в теме "main" java.lang.NullPointerException в Display.readFile (Display.java:66) в Display. (Display.java:36) в Expordium.play (Expordium.java:15) в Expordium.main (Expordium.java:8)