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

3 respostas
judanigno

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

3 Respostas

ViniGodoy

Você pode seguir os tutoriais do meu site.

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

acromo

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);
	}
}
InSeOfKn

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

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();

    }

}

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

até mais!

Criado 14 de outubro de 2010
Ultima resposta 14 de out. de 2010
Respostas 3
Participantes 4