I just assumed a modern language like Java would behave in a way similar to .Net.
Not sure why you would assume that. Every language works its own way.
I suggest you read
A Closer Look at the Paint Mechanism to understand why Swing works the way it does.
Also, I'm not sure why you would be dragging around a JTextArea. If you use LayoutManagers then the layout manager will make sure all components are within the Border of the Component. If you do have a dragging requirement then maybe you can use the
Component Mover class. It makes sure that a components is moved within the bounds of its parent.