Hallo Leute,
ich muss ich euch leider noch einmal mit einem Problem von mir nerven. Habe heute so viel an meinem Programm geändert, ich sehe schon den Wald vor lauter Bäumen nicht mehr. :-(
Ich kann in meinem Programm den Zustand vieler JComponents in einer Textdatei speichern und das funktioniert dank eurer Unterstützung auch. Auch das Laden funktioniert, nur werden die Höhe und Breite vertauscht. Es werden also genau die falschen JComponents gesetzt. Habe alle Schleifen verglichen und weiß einfach nicht weiter und bin bereits am Verzweifeln. Grund für das Ändern war eine ständige index out of bounds exception.
Map Konstruktor
Bekomme beim Einlesen nun eine NullPointerException. ;(
ich muss ich euch leider noch einmal mit einem Problem von mir nerven. Habe heute so viel an meinem Programm geändert, ich sehe schon den Wald vor lauter Bäumen nicht mehr. :-(
Ich kann in meinem Programm den Zustand vieler JComponents in einer Textdatei speichern und das funktioniert dank eurer Unterstützung auch. Auch das Laden funktioniert, nur werden die Höhe und Breite vertauscht. Es werden also genau die falschen JComponents gesetzt. Habe alle Schleifen verglichen und weiß einfach nicht weiter und bin bereits am Verzweifeln. Grund für das Ändern war eine ständige index out of bounds exception.
Java:
public Map loadMap(File fileToLoad){
try{
BufferedReader br = new BufferedReader(new FileReader(fileToLoad));
width = Integer.parseInt(br.readLine());
height = Integer.parseInt(br.readLine());
Map map = new Map(height, width);
int[][] tileInput = new int[height][width];
String delimiters = " ";
for(int i=0; i<map.height; ++i){
String line = br.readLine();
String[] tokens = line.split(delimiters);
for(int j=0; j<map.width; ++j){
tileInput[i][j] = Integer.parseInt(tokens[j]);
}
}
for(int i=0; i<map.height; ++i){
for(int j=0; j<map.width; ++j){
if(tileInput[i][j] == 1){
map.tiles[i][j].setPressed(true);
map.tiles[i][j].setColor(Color.red);
}
if(tileInput[i][j] == 0){
map.tiles[i][j].setPressed(false);
}
}
}
return map;
Java:
public void getNewMap(Map grid){
this.grid = grid;
raster = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
Tile tile;
for(int i=0; i<grid.getHeight(); ++i){
for(int j=0; j<grid.getWidth(); ++j){
c.gridx = i;
c.gridy = j;
tile = grid.getTile(i, j);
raster.add(tile, c);
}
}
this.remove(pane);
pane = new JScrollPane(raster);
this.add(pane, BorderLayout.CENTER);
validate();
}
Map Konstruktor
Java:
public Map(int width, int height){
this.width = width;
this.height = height;
tiles = new Tile[this.height][this.width];
for(int i=0; i<height; ++i){
for(int j=0; j<width; ++j){
tiles[i][j] = new Tile();
}
}
}
Bekomme beim Einlesen nun eine NullPointerException. ;(
Zuletzt bearbeitet: