Bom, estou meio perdido ainda em como fazer este procedimento, sou iniciante em programacao. Vou postar o meu codigo para me informarem um geito legal de pegar as coordenadas do botao:
Esta primeira classe cria 3 tpos de botao:
[code]
public class Peca extends JButton implements ActionListener
{
private static int tamanho = 50;
private Estado estado;
int linha, coluna;
public Peca(int linha , int coluna)
{
super();
this.linha = linha;
this.coluna = coluna;
setBackground(Color.WHITE);
estado = Estado.VAZIO;
}
public int getLinha() {
return linha;
}
public void setLinha(int linha) {
this.linha = linha;
}
public int getColuna() {
return coluna;
}
public void setColuna(int coluna) {
this.coluna = coluna;
}
public void setEstado(Estado e) { estado = e; }
public Dimension getMaximumSize() { return getPreferredSize(); }
public Dimension getMinimumSize() { return getPreferredSize(); }
public Dimension getPreferredSize() { return new Dimension(tamanho,tamanho); }
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
if (estado != Estado.VAZIO)
{
Color[] cores = new Color[2];
if (estado == Estado.RED)
{ cores[0] = Color.RED; cores[1] = new Color(100,10,5); }
else if (estado == Estado.PRETO)
{ cores[0] = new Color(100,100,100); cores[1] = Color.BLACK; }
RadialGradientPaint paint = new RadialGradientPaint(new Point2D.Double(tamanho/3,tamanho/3),2*tamanho/3,new float[]{0f,1f},cores);
g2d.setPaint(paint);
g2d.fillOval(6,6,getWidth()-12,getHeight()-12);
}
}
} [/code]
Esta proxima classe “Principal” cria os botoes nas posicoes de uma matriz 8x8 quando e clicado em “new game” . No momento da criacao de cada botao dentro de um “for” , preciso salvar em cada um deles a posicao X,Y, depois preciso verificar se algum dos botoes da matriz foi clicado e salvar suas coordenadas para enviar para a classe Tabuleiro Logico e fazer as devidas alteracoes.
public class Principal extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JMenu mPrincipal;
private JMenuItem btnNew,btnSalvar,btnLoad,btnSair;
private JMenuBar menuBar;
Peca[][] tabuleiro ;
TabLogico tbL = new TabLogico();
public Principal(){
super("PROJETO DAMAS");
this.setSize(700 , 750);
this.setVisible(true);
ImageIcon imgNew = new ImageIcon("c:/joypad-005.png");
btnNew = new JMenuItem("New Game" , imgNew);
btnNew.addActionListener(this);
ImageIcon imgLoad = new ImageIcon("c:/folder_out-005.png");
btnLoad = new JMenuItem("Load Game" , imgLoad);
btnLoad.addActionListener(this);
ImageIcon imgSalvar = new ImageIcon("c:/save_as-005.png");
btnSalvar = new JMenuItem("Save" , imgSalvar);
btnSalvar.addActionListener(this);
ImageIcon imgSair = new ImageIcon("c:/delete-005.png");
btnSair = new JMenuItem("Exit" , imgSair);
btnSair.addActionListener(this);
menuBar = new JMenuBar();
ImageIcon img_logo = new ImageIcon("c:/webmaster_2939_Google_Chrome.png");
mPrincipal = new JMenu();
mPrincipal.setIcon(img_logo);
mPrincipal.add(btnNew);
mPrincipal.add(btnSalvar);
mPrincipal.add(btnLoad);
mPrincipal.add(btnSair);
menuBar.add(mPrincipal);
setJMenuBar(menuBar);
setVisible(true);
setResizable(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnSair){
System.exit(1);
}
if (e.getSource() == btnNew){
setLayout(new GridLayout(8,8));
tabuleiro = new Peca[8][8];
for(int l=0;l<8;l++)
for(int c=0;c<8;c++)
{
tabuleiro[l][c] = new Peca(l, c);
add(tabuleiro[l][c]);
this.repaint();
this.validate();
}
for (int l=0; l<8;l++)
for(int c=0;c<8;c++)
{
if (l % 2 == 0)
{
if (c % 2 != 0)
{
tabuleiro[l][c].setBackground(Color.GRAY);
}
}
if (l % 2 != 0)
{
if (c % 2 == 0)
{
tabuleiro[l][c].setBackground(Color.GRAY);
}
}
}
for (int l=0; l<8;l++)
for(int c=0;c<8;c++)
{
if (tbL.VerificaTab(l, c) == 1)
{
tabuleiro[l][c].setEstado(Estado.RED);
}
else if (tbL.VerificaTab(l, c) == 2)
{
tabuleiro[l][c].setEstado(Estado.PRETO);
}
}
}
}
}
Alguem poderia me ajudar?