@SuppressWarnings("unchecked")
	private void loadFile() {
		if (fc.showOpenDialog(panel) != JFileChooser.APPROVE_OPTION) {
			return;
		}
		File loadFile = fc.getSelectedFile();
		try {
			BufferedReader reader = new BufferedReader(new FileReader(loadFile));
			List<String[]> dataGrid = new ArrayList<String[]>();
			String[] line = reader.readLine().split("\\s+");
			int width = line.length;
			dataGrid.add(line);
			while (reader.ready()) {
				line = reader.readLine().split("\\s+");
				if (width != line.length) {
					throw new IOException();
				}
				dataGrid.add(line);
			}
			Grid grid = controller.getAutomaton().initialize(width, dataGrid.size());
			for (int i = 0; i < dataGrid.size(); i++) {
				line = dataGrid.get(i);
				for (int j = 0; j < width; j++) {
					grid.setCell(controller.getAutomaton().readCellState(line[j]), new CellPos(j, i));
				}
			}
			controller.setGrid(grid);
			controller.setStatus("Brett geladen");
		}
		catch (FileNotFoundException e) {
			controller.setError("Die angegebene Datei konnte nicht gefunden werden.");
		}
		catch (IOException e) {
			controller.setError("Die angegebene Datei entspricht nicht dem erforderlichen Format.");
		}
		catch (Exception e) {
			controller.setError("Die angegebene Datei entspricht nicht dem erforderlichen Format.");
		}
	}