Organizar Janelas

Imaginem o seguinte:

Tenho um programa (swing) que abre diversas janelas, inclusive, eh possivel abrir mais de uma copia da janela, por exemplo, tenho um menu Cadastros/Bairros. Esse menu chama a funcao showBairro() que contem o seguinte codigo:

private void showBairro(){
     FormBairro f = new FormBairro(this);  //no caso, this eh o parent do formBairro.
     f.setVisible(true);
}

Ou seja, cada vez que clico sobre o menu de cadastro de bairros, ele exibe uma nova janela de cadastro.

Pois bem, eis minha duvida:

COMO FAZER UM ARRANGE WINDOWS para que uma nao fique sobrepondo a outra (eh obvio que isso eh limitado a partir de um certo ponto nao vai ter jeito.) mas a maioria das pessoas trabalham com 2 ou 3 janelas no maximo, e isso cabe com certeza.

Espero que tenham me entendido.

[]'s

Nao eh isso nao,

Minha aplicacao vai criando janelas “soltas” na area de trabalho, tipo o GIMP, gostaria de ter uma funcao para organiza-la da melhor maneira, tipo que alguns Windows Managers fazem para achar o melhor lugar para colcoar uma janela…

Obrigado,

[]s