Here's probably the easiest solution:
change
to
and call pack() before show().
e.g.
Frankly, I try to avoid using null layout. It is very messy. Text and other components do not appear the same size on all platforms and L&Fs. It is
much cleaner to use real layout managers, so that you don't have to specify sizes nor locations for everything. Your dialog is not so complex that a BorderLayout with a couple BoxLayouts couldn't handle it nicely.
And if your dialog is always going to be the same, why not make it unresizeable (setResizable(false)).
Personally, I have not found a LayoutManager that I like better than OculusLayout. It has never failed to meet all of my layout needs. Granted, I work for the company, but I really do like it.
Bill