It's a double edged sword. On the one hand, you know what APIs they've committed to and won't change.
On the other hand, often you want to extend more then they would "allow". And because you're wrapping their APIs, when those APIs change, you should only have to change your code in the one place where you overloaded them.
There's a lot of bad things said about JFC/Swing, I won't repeat them here, but it did allow you to extend almost everything.
On the other hand, often you want to extend more then they would "allow". And because you're wrapping their APIs, when those APIs change, you should only have to change your code in the one place where you overloaded them.
There's a lot of bad things said about JFC/Swing, I won't repeat them here, but it did allow you to extend almost everything.
And as a side note, GridBagLayout is powerful and elegant, despite what some people say: http://www.youtube.com/watch?v=UuLaxbFKAcc