private void load() {
        if (JFileChooser.APPROVE_OPTION != fileChooser.showOpenDialog(this))
            return;
        File file = fileChooser.getSelectedFile();
        BufferedReader br = null;
        try {
        	clearTable();
        	br = new BufferedReader(new FileReader(file));
            String line = br.readLine();
            if (line == null || !line.equals(SaveDataFileHeader)) {
                JOptionPane.showMessageDialog(null, "Invalid Log Play Table file!", "Error", JOptionPane.ERROR_MESSAGE);
                return;
            }
            line = br.readLine();
        	int row = 0;
            String[] elements;
            while (line != null) {
            	elements = line.split(",", -1);
                Utils.ensureRowCount(row + 1, playTable);
                Utils.ensureColumnCount(elements.length - 1, playTable);
                for (int i = 0; i < elements.length - 1; ++i)
                	playTable.setValueAt(elements[i], row, i);
            	++row;
            	line = br.readLine();
            }
	    	validateTable(playTable);
	    	pack();
        }
        catch (FileNotFoundException e) {
            logger.error(e);
        }
        catch (Exception e) {
            e.printStackTrace();
            logger.error(e);
        }
        finally {
        	if (br != null) {
                try {
                	br.close();
                }
                catch (IOException e) {
                    logger.error(e);
                }
        	}
        }
    }