After playing around with your code I came up with this. It happens to use a "GBC" utility class which I'll add in the next post.
The resizable method can affect the size of the decorations of the frame which in turn will affect the pack() calculation.
I examined the code earlier and found out that I just need to assign weights to my textarea and set the fill mode of textarea's constraints to GridBagConstraints.BOTH to achieve the result that I wanted.
Edit: setAnchor(Center) could be removed because it is the default.