i think it's more usual to just save the data and let the pictures/models/sounds be shared ressources already in the game.
What you find is that you often need to make some modifications for each new level - an extra skin here, an extra model there, etc - so that in general most levels have at least *some* extra resource. There are several ways of dealing with this (one of which is webstart's own way - i.e. you just have every level reference the assets it needs, and sometimes the user will already have them, sometimes they won't - but that requires a lot of organization, which may not be possible if you accept packs from many sources).
I guess the best thing to do is to place the default levels in a jar downloaded together with the game, and place an "import button" to open a custom level data file somewhere on the disk.
I was kind of assuming you'd want to download the levels in-game anyway, since that's nicer for the user - they don't need to work out which folder (I've had problems where you can never work out precisely which folder to drop something in - and when it doesn't work you don't know if that's because it's broken or you put it in the wrong place, etc), and it feels more professional.
Like with battle.net, or Wurm Online, where the plugin etc management is all in-game...
PS: this is something Kev and I have been mulling over recently (or at least *I* have) because it's a PITA if you design it badly, and we need to sort out how survivor will do it from now on. The current system is too kludgy and hacked together

. Although...I have to say, it does EXACTLY what you were originally asking for - and I apologise that we haven't posted the source code for it yet (it's in a folder marked "source code to post on JGF as soon as JGF gets a code section").