Come gestire un sacco di Action Listener per più pulsanti

0

Ho questo gioco di Tic Tac Toe e ho pensato a questo fantastico modo per disegnare la griglia di 9 piccole scatole. Stavo pensando di mettere i pulsanti in ognuna di quelle scatole.

Come dovrei assegnare ciascun pulsante (9 pulsanti in totale) a ActionListener che disegna X o O ?

Dovrebbero ognuno avere i propri, o dovrei fare una sorta di codice che rileva giri in this ? Potrei anche fare un JButton Array e fare un po 'di for loops per mettere 9 pulsanti. Tante possibilità, ma quale è il più corretto ?

Codice finora:

import javax.swing.*;

import java.awt.event.*;
import java.awt.*;
public class Board extends JPanel implements ActionListener{
public Board(){
    Timer timer = new Timer(25,this);
    timer.start();
}
@Override
protected void paintComponent(Graphics g){
    for(int y = 0; y < 3; y++){
        for(int x = 0; x < 3; x++){
                g.drawRect(x*64, y*64, 64, 64);
        }
    }
}
public void actionPerformed(ActionEvent e){
    repaint();
}
}
    
posta Wumbo4Dayz 18.10.2013 - 20:35
fonte

1 risposta

0

Crea una classe Square che estende un JButton o un JPanel che contiene un JButton. Puoi inserire il codice lì per gestire una pressione del pulsante e disegnare il pulsante. Usa 9 di questi in una griglia per inserirti nella tua classe Board.

Una pressione pulsante reale non dovrebbe influire direttamente sul pulsante / quadrato. Dovrebbe chiamare un metodo sulla classe di bordo che verificherà che la mossa sia legale e faccia qualsiasi altra contabilità. (Certo non c'è molto da fare qui, ma un giorno il tuo gioco potrebbe diventare più complicato.) Il metodo Board dovrebbe anche chiamare un metodo Square che permetta al pulsante di sapere che viene spinto e lo fa ridisegnare.

In sintesi, gestisci tutto ciò che ha a che fare con un quadrato / pulsante in una classe Square e tutto ciò che ha a che fare con l'intero gioco nella classe Board. Il tuo obiettivo finale dovrebbe essere quello di mantenere il più semplice possibile e il più semplice possibile per cambiare.

    
risposta data 18.10.2013 - 21:58
fonte

Leggi altre domande sui tag