printStackTrace to java.util.logging.Logger

Why don't you put the exception in the logger?

You can use this method :

logger.log(Level level, String msg, Throwable thrown) 

The severe method is only used to log severe messages without associated throwable information. If you need to log throwable information then you should use the log method instead:

try {
     data = new GameData.Builder().enemy(enemy).build();
     log.fine("new data object\t\t" + data.getEnemy());
     setChanged();
     notifyObservers(data);
} catch (NullPointerException npe) {
     log.log(Level.SEVERE, npe.getMessage(), npe);
}