Resize de Layout e JFrame

Ae pessoal…

Vou mostrar o resumo do codigo que explica melhor meu problema:

public class Janela extends JFrame{
	JPanel painel;
	GridLayout lay;
	JMenuBar menu;
	
	public Janela(){
		painel = new JPanel();
		lay = new GridLayout(0,5);
		
		painel.setLayout(lay);
		
		this.setJMenuBar(menu);
		this.setLayout(new FlowLayout());
		this.add(painel);
		this.setMinimumSize(new Dimension(800, 600));
		this.setVisible(true);
	}
	
	// O painel pequeno tem tamanho fixo
	public void addPanels(JPanel pequeno){
		painel.add(pequeno);
	}
}

A ideia é o seguinte:
Na janela pode ter linhas com no minimo 5 painéis pequenos, por isso do:

lay = new GridLayout(0,5);

Quando a Janela abre, a largura de 800px é suficiente para mostrar todos os 5 paineis.

O que eu quero, é que a medida que o usuário aumente a janela na horizontal, mostre mais um painel, assim que possivel…

No meu PC por exemplo, quando maximizo a tela, era para ter linhas com 8 painéis pequenos.

Outra coisa, como pode haver “infinitos” painéis pequenos, quero que quando o usuário faça o resize na vertical, apareça uma barra de rolagem para mostrar os ocultos.

To novo no Java, então me desculpem caso isso seja trivial…

VLw

Minha idéia é colocar um ActionListener para o resize do JFrame e com isso, alterar o Layout quando preciso…

A idéia é essa??

[quote=clincks]Minha idéia é colocar um ActionListener para o resize do JFrame e com isso, alterar o Layout quando preciso…

A idéia é essa??
[/quote]

Acho que é por aí mesmo.

Mas como pegar o ActionListener do resize?

Use o método addComponentListener. Ele permite que você sobrescreva o método componentResized.

Com o FlowLayout já funcionou…

Agora tenho que colocar a barra de rolavem, como so tem um JPanel e um JMenuBar no Frame, acho q é so colocar no JFrame msm…

Como coloco a Barra de rolagem no JFrame???

Use um JScrollPane e dentro dele adicione um painel com seus componentes.
Por exemplo:

// trabalho com meu painel normalmente
JPanel panel = new JPanel();
// adiciono nele todos os componentes...
for (int i = 0; i < 15; i++) {
    panel.add(new JButton("Botão" + i);
}
// depois crio um JScrollPane que servirá para a rolagem
JScrollPane scroll = new JScrollPane(panel);
// e adiciono na janela o JScrollPane
add(scroll);
public class Janela extends JFrame{
	JPanel painel;
	GridLayout lay;
	JMenuBar menu;
	
	public Janela(){
                JScrollPane scroll;

		painel = new JPanel();
		lay = new FlowLayouy();
		
		painel.setLayout(lay);
		
                scroll = new JScrollPane(c_PanelQuartos);

		this.add(scroll);
		this.setJMenuBar(menu);
		this.setLayout(new FlowLayout());
		this.add(painel);
		this.setMinimumSize(new Dimension(800, 600));
		this.setVisible(true);
	}
	
	// O painel pequeno tem tamanho fixo
	public void addPanels(JPanel pequeno){
		painel.add(pequeno);
	}
}

Coloquei o painel maior com FlowLayout, ate eu criar o scroll, funciona perfeitamente com o resize do JFrame, organizando os paineis pequenos de acordo com o tamanho disponivel.
Mas quando insere mtos paineis pequenos, o JFrame corta o painel central.

Para resolver, colquei o scroll, mas ele insere um scroll na horizontal, e o paineis pequenos ficam em um linha so.

Alguma ideia? vlww