private MouseAdapter createEnemyButtonListener () {
        MouseAdapter listener = new MouseAdapter() {
            @Override
            public void mouseClicked (MouseEvent e) {
                myNumEnemies++;
                String currentEnemyID = "enemy" + Integer.toString(myNumEnemies);
                try {
                    int gold = Integer.parseInt(myGoldField.getText());
                    int life = Integer.parseInt(myLifeField.getText());
                    int damage = Integer.parseInt(myGoldField.getText());
                    double speed = Double.parseDouble(mySpeedField.getText());
                    String skill = (String) mySkillOptions.getSelectedItem();
                    myImageSource = myEnemyAnimations.get(0).getImageFile();
                    List<String> enemyAnimationPaths = new ArrayList<String>();
                    if (myEnemyAnimations.size() > 1) {
                        for (ImageLabel imageLabel : myEnemyAnimations) {
                            enemyAnimationPaths.add(imageLabel.getID());
                        }
                        AnimationJSONObject animation =
                                new AnimationJSONObject(currentEnemyID, enemyAnimationPaths);
                        setChanged();
                        notifyObservers(animation);
                        clearChanged();
                    }
                    else {
                        currentEnemyID = myEnemyAnimations.get(0).getID();
                    }
                    if (gold < 0 || life < 0) {
                        JOptionPane
                                .showMessageDialog(null,
                                                   StyleConstants.resourceBundle
                                                           .getString("EnemyNegativeInput"));
                    }
                    else {
                        EnemyJSONObject enemy =
                                new EnemyJSONObject(myNameField.getText(), gold, currentEnemyID,
                                                    life, damage, speed, skill);
                        setChanged();
                        notifyObservers(enemy);
                        clearChanged();
                        addEnemy(myImageSource, myNameField.getText());
                        myNameField.setText(StyleConstants.NULL_STRING);
                        myGoldField.setText(StyleConstants.NULL_STRING);
                        myLifeField.setText(StyleConstants.NULL_STRING);
                        mySpeedField.setText(StyleConstants.NULL_STRING);
                        myDamageField.setText(StyleConstants.NULL_STRING);
                        clearAnimationPanel();
                    }
                }
                catch (NumberFormatException n)
                {
                    JOptionPane.showMessageDialog(null, StyleConstants.resourceBundle
                            .getString("EnemyInvalidInput"));
                }
            }
        };
        return listener;
    }