The problem I'm having is that there is always this gap in between the bottom and right sides of my components and the edge of the window
mainWindow.setResizable(false);
The above statement should be executed BEFORE the frame is packed.
I know I'm bound to take flak for it, but I'm attempting to set up a JFrame that uses a null layout in its content pane so that I can use absolute positioning for my components
Don't use a null layout unless your application supports dragging of components to random position. In this case the layout manager can't predict the location of the component. Otherwise use a layout manager.