Olá a todos, sou novo no fórum, e estou desenvolvendo meu TCC com Java.
Não sou expert e nem newbie, mas vivo cheio de dúvidas! =P
Bom vamos ao meu caso: estou desenvolvendo um Batalha Naval com interface gráfica, e separo toda parte do projeto em vários .java
A Main, constitue em chamar o metodo Tabuleiro, que por sua vez constitue em chamar um Painel pra cada parte do BorderLayout.
No PainelDireito, eu crio 100 botões representando a matriz 10x10 do tabuleiro.
No PainelSul, eu tenho um botão, onde o usuário clica e define onde ficará suas embarcações, ele digita através de um InputBox.
No tratador de evento de click desse botão, eu faço todas as verificações que preciso, e chamo uma função que está no PainelDireito que tem que colorir os botões passados como parâmetro.
É passado corretamente as posições para a função, que colori os botões, porém, não é atualizado as cores nos botões.
Não coloco o código do projeto todo aqui, porque ficaria muito extenso.
Segue o código do PainelDireito, lembrando novamente que é passado corretamente qual botão deve ser colorido na função “pintaBotao”.
Obrigado.
package BS;
import java.awt.GridLayout;
import java.awt.Color;
import java.awt.event.ComponentEvent;
import javax.swing.JButton;
import javax.swing.JPanel;
public class PainelDireito extends JPanel{
private JButton [][] botaoMatrizJ2;
private TratadorClickDir click;
public PainelDireito(){
setLayout(new GridLayout(10,10));
botaoMatrizJ2 = new JButton [10][10];
click = new TratadorClickDir(botaoMatrizJ2);
for(int i=65;i<75;i++){
for(int j=0;j<10;j++){
char a = (char)i;
String aux = a+"",aux2 = (aux+(j+1));
botaoMatrizJ2[i-65][j] = new JButton(aux2);
botaoMatrizJ2[i-65][j].setSize(20, 20);
Color azul2 = new Color(0,0,160);
Color azul1 = new Color(0,64,128);
if(i%2==0){
if(j%2==0){
botaoMatrizJ2[i-65][j].setBackground(azul1);
botaoMatrizJ2[i-65][j].setForeground(Color.WHITE);
}else{
botaoMatrizJ2[i-65][j].setBackground(azul2);
botaoMatrizJ2[i-65][j].setForeground(Color.BLACK);
}
}else{
if(j%2==1){
botaoMatrizJ2[i-65][j].setBackground(azul1);
botaoMatrizJ2[i-65][j].setForeground(Color.WHITE);
}else{
botaoMatrizJ2[i-65][j].setBackground(azul2);
botaoMatrizJ2[i-65][j].setForeground(Color.BLACK);
}
}
botaoMatrizJ2[i-65][j].addActionListener(click);
add(botaoMatrizJ2[i-65][j]);
}
}
}
public void pintaBotao(int i,int j, Color corFundo, Color corLetra){
botaoMatrizJ2[i-65][j-1].setBackground(corFundo);
botaoMatrizJ2[i-65][j-1].setForeground(corLetra);
}
}
