you should use a LayoutManager and define relations between the sizes of your components. For example: JScrollpane should fill the lower half of the frame, if the frame gets resized the scrollpane should grow and shrink the other components shouldn't.
You can specify the empty space between the components using the layout manager.
My recommendation use GridBagLayout.
See the Swing Tutorial on Layout Managers.