The amount of sizes you have to set to make stuff work. Setting size doesn't work, setting defaultSize doesn't work, setting preferred size doesn't work, then you have to create a random dimension object to set another size. Seems like I'm always setting everything to get it to work.
Unless you are sub-classing a swing component you should not be trying to set the size. If you are sub-classing then you should over-ride getPreferedSize() to get the correct size you need.
Repaint is awkward. I end up with every class having a local reference to the repaint thread and it is annoying. My custom list has altered? Well I need to repaint everything then, oh, I cant.
You don't need to repaint everywhere. Repaint cascades down the hierarchy. Just repaint from the top most point you need to. If you have multiple custom components that need repainting then you might want to think about only having one.
Some of the behaviour is twisted. It says in the javadoc that it works when you do X, but in reality it only works when you have a bunch of random prerequisites which it didn't tell you about. Did you remember to call method doRandomStuff(XYZManager x) AFTER you have created the object? Well it doesn't work. Should have been in the constructor then, shouldn't it?
Would need a specific example to comment.
The amount of inherited fields and methods gets in the way sometimes. I know it inherited them from Component, but I don't care about them and I cant find the method I am actually interested in. I would prefer swingObject hasa Component.
Some children are possible only from a JFrame, but not in nested objects. So you want a filedialog window to appear when you click a button in your panel? Well, you can't.
If you are opening a dialog that needs a JFrame you can either pass null or create a dialog builder class that contains static methods but you set it up in the JFrame and pass a reference to the JFrame object.
Is swing JFrame the one where you cant convert easily to an Applet?
You should never put anything directly on a JFrame other than menus. If you want to make your application applet friendly you should build your app from a JPanel down and then you can use that JPanel in either a JFrame or JApplet.