Matriz de Botões e Layoyt em Grind

6 respostas
F_ix1

Olá pessoal tudo bem? volto aqui de novo para tirar mais uma duvida

estou fazendo um vetor para gerar botões que está assim

public JButton matrizes [][];
public void  RegioesGraficas(){
        matrizes =  new javax.swing.JButton[2][2];
        for(int linha=0;linha<matrizes.length;linha++){
            for(int coluna=0;coluna<matrizes.length;coluna++){                
                matrizes[linha][coluna] = new JButton("");
                matrizes[linha][coluna].setSize(linha, linha);
                matrizes[linha][coluna].setLayout(new java.awt.GridLayout());
                getContentPane().add(matrizes[linha][coluna]);
                System.out.print("setando\n");
            }
        }

    }

infelizmente não sei porque meus botões não aparecem no Jframe no qual é para eles serem gerados!

outra duvida é sobre o layout em grind

eu preciso de uma estrutura de 10 colunas e 10 linhas infelizmente não consigo modificar essa informação no jframe como eu poderia fazer isso?

Obrigado \o

>

6 Respostas

F_ix1

Pessoal gostaria de informar que “resolvi o problema”

public void RegioesGraficas(){ matrizes = new javax.swing.JButton[10][10]; for(int linha=0;linha<matrizes.length;linha++){ for(int coluna=0;coluna<matrizes.length;coluna++){ matrizes[linha][coluna] = new JButton(coluna+""); matrizes[linha][coluna].setSize(linha, linha); matrizes[linha][coluna].setLayout(new java.awt.GridLayout()); getContentPane().add(matrizes[linha][coluna]); matrizes[linha][coluna].setVisible(true); System.out.print("setando\n"); this.getContentPane().setLayout(new GridLayout(10, 10)); } }

só que atualmente estou com esse erro ao tentar gerar uma matriz 10 por 10

Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: 2>

P

Tenta tirar o

this.getContentPane().setLayout(new GridLayout(10, 10));

de dentro do for para ver se funciona

F_ix1

Opa brother consegui funcionar e esse era um dos problemas!! obrigado.

só que aproveitando o topico estou com dificuldades em criar eventos para os botões gerados. segue como ta o metodo

public void RegioesGraficas(){ for(int linha=0;linha<matrizes.length;linha++){ for(int coluna=0;coluna<matrizes.length;coluna++){ matrizes[linha][coluna] = new JButton("botao: "+linha+coluna); pegavalores(linha,coluna); matrizes[linha][coluna].addActionListener(new java.awt.event.ActionListener() { //criando o evento de click para os botões gerados! e tambem vai chamar o metodo para colorir ele @Override public void actionPerformed(java.awt.event.ActionEvent evt) { Colorindo(linha2,coluna2); } }); getContentPane().add(matrizes[linha][coluna], new java.awt.GridBagConstraints()); this.getContentPane().setLayout(new GridLayout(11, 11)); } } }

o que tentei fazer é o seguinte, se eu clico em um botão gerado ele vai receber uma determinada cor de outro metodo o problema é que estou sempre colorindo o mesmo botão (o ultimo) não consigo fazer a identificação de evento para cada um em separado ‘’/
>

P

Vc deve adicionar o actionListener em uma instancia do botão.

Exemplo:

JButton btn = new JButton("botao: "+linha+coluna);
btn.addActionListener();
matrizes[linha][coluna] = btn;

Da forma que vc está fazendo, está adicionando o listener na matriz.

F_ix1

Muito obrigado brother problema resolvido e “paint” funcionando rsrsrsrs

era isso mesmo que tava me dando problema brigado mesmo cara!!

P

Estamos aí para isso!

Bonita aplicação, o que ela faz?

Criado 20 de maio de 2013
Ultima resposta 21 de mai. de 2013
Respostas 6
Participantes 2