So I ran into some rather interesting problems. I have been playing around with the same three layouts that I learned in my introductory java course last year: BorderLayout, FlowLayout and GridLayout for a good hour in the game I have been developing for the past month.

None of the three layouts are very nice to my game canvas. The reason, is the right-half portion of the game canvas gets obscured which I also do not know how to solve. I think the one layout that did the least amount of damage to my game canvas out of the three is BorderLayout which is the one depicted in this picture below. Although, from a user standpoint, you can see BorderLayout still hurts the gameplay experience of my arcade shooter clone.

The heart image and the life image are both JLabel objects. The middle is the game canvas(from what I seen BorderLayout seems to have messed up my game canvas). The source code is posted at the bottom-most.

I know I am doing this wrong but I think I struggle enough. Perhaps I need to use a layout I have not been taught?

Here is what the game looks if it uses BorderLayout:

If my game canvas was left alone with no layout it would look nice like this:

They recommend just using netbeans. I haven't actually used that yet, so I don't know how effective it is. Otherwise they recommend grouplayout or gridbaglayout.

Personally I've had a lot of luck with BoxLayout. BoxLayout tends to prefer to support the default sizes of components, so it doesn't do some of the weird resizing things some of the other layout setups do. To get more intricate layouts, though, you have to make yourself a hierarchical box structure. That's actually sort of the way I tend to set stuff up when I code javascript as well, though, so it flows pretty naturally for me.

Good luck

*Edit part*

I just had a thought. It might work out well for what you're making to just move your UI display stuff into your canvas. Then you wouldn't need to bother with the layout managers at all.

They recommend just using netbeans. I haven't actually used that yet, so I don't know how effective it is. Otherwise they recommend grouplayout or gridbaglayout.

Personally I've had a lot of luck with BoxLayout. BoxLayout tends to prefer to support the default sizes of components, so it doesn't do some of the weird resizing things some of the other layout setups do. To get more intricate layouts, though, you have to make yourself a hierarchical box structure. That's actually sort of the way I tend to set stuff up when I code javascript as well, though, so it flows pretty naturally for me.

Good luck

*Edit part*

I just had a thought. It might work out well for what you're making to just move your UI display stuff into your canvas. Then you wouldn't need to bother with the layout managers at all.