Java: Como controlar a proporção de aspecto do JPanel?

Eu tenho um JPanel que eu quero manter um quadrado, no entanto, quero que ele seja dimensionado para preencher a quantidade máxima de espaço possível em seu JFrame pai, mas permanece quadrado, ou seja, leva o lado mais curto do JFrame como a largura do quadrado.

Eu pesquisei na net, verifiquei todos os gerenciadores de layout e nenhum parece ter uma solução simples para esse problema muito simples.

questionAnswers(3)

yourAnswerToTheQuestion