Matrizes com swing... (jogo da memória)

olá pessoal, recém estou iniciando a usar o swing, então estou fazendo um jogo da memória, porém não sei como faço para criar o tabuleiro com as imagens…
não sei fazer matrizes em swing, e gostaria de saber se há como, ou então como posso fazer utilizando botões?
lembrando que as imagens devem ficar mudando de lugar cada vez que é iniciado o jogo de novo e também deve se percorrer o vetor (?) ou o que for(no caso de matrizes) para ocorrer a mudança de carta virada, desvirada ou ja achado o par…
ñ sei se consegui me expressar direito, mas aguardo ajuda
[]'s

Você pode seguir os tutoriais do meu site.

Outra forma seria programar JButtons, usando um GridLayout e alguns timers.

Como já foi dito anteriormente você pode utilizar o gridBagLayout um exemplo simples seria este:

public class Test extends JFrame {
	public static void main(String[] Args) {
		JPanel panel = new JPanel(new GridBagLayout());
		GridBagConstraints gbc = new GridBagConstraints();
		
		gbc.gridx = 0;
		gbc.gridy = 0;
		panel.add(new JButton("A"), gbc);

		gbc.gridx = 0;
		gbc.gridy = 1;
		panel.add(new JButton("B"), gbc);
		
		gbc.gridx = 1;
		gbc.gridy = 0;
		panel.add(new JButton("C"), gbc);
		
		gbc.gridx = 1;
		gbc.gridy = 1;
		panel.add(new JButton("D"), gbc);
		
		Test test = new Test();
		test.add(panel, BorderLayout.CENTER);
		test.pack();
		test.setVisible(true);
	}
}

ai vai um exemplo de como criar uma matriz de um objeto do pacote Swing (é igual a qualquer matriz) e de como adicionar objetos em um JPanel com GridLayout (que é um pouco menos complexo que o gridBagLayout) para que eles se comportem como uma tabela

[code]import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class JogoDeMemoria extends JFrame{
private JButton[][] btosTab = new JButton[5][5]; //no caso de um tabuleiro de 5 por 5
JPanel panelTab;

JogoDeMemoria(){
    super("Jogo da Memoria");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    this.setSize(1000,500); 

    confPanelTab();

    this.setVisible(true);
}

private void confPanelTab(){
    panelTab = new JPanel(new GridLayout(5,5)); // crio o JPanel que servira de tabuleiro; 

    criaBtosTab();

    this.add(panelTab); // adiciono ele na janela;
}

private void criaBtosTab(){
    for(int i=0; i<btosTab.length; i++){ // loop que percorre as linhas do tabuleiro
        for(int j=0;j<btosTab[i].length; j++){ //loop que percorre as colunas do tabuleiro
            btosTab[i][j] = new JButton("img da linha "+(i+1)+", coluna "+(j+1));
            panelTab.add(btosTab[i][j]);
        }

    }
}
public static void main(String[] args) {
    new JogoDeMemoria();

}

}
[/code]

agora é só você dar uma estudada em como colocar uma imagem em um JButton e de como ouvir eventos

até mais!