JJ Calabria
11-07-2007, 12:18
Ciao a tutti!:D
avevo già scritto su questo forum per quanto riguarda questo dannato progetto..ma per motivi di lavoro nn ho potuto continuare a dedicarmi a questa impresa.
Sono rimasto bloccato per quanto riguarda gli eventi: nelle specifiche mi dice ke quando seleziono un pezzo, la casella selezionata deve cambiare colore. Ho cercato di implementare in una classe la scacchiera implementando MouseListener, ma nn mi viene fuori granchè..:muro:
Di seguito riporto la classe(le pedine sono ancora da strutturare come si deve, l'unica parte ke mi interessa sono gli eventi per il momento).
Grazie a chi mi vorrà aiutare!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* La classe contiene lo sviluppo del frame principale e rappresenta la scacchiera.
*/
public class Scacchiera extends JFrame implements MouseListener
{
// variabili istanza
private Pedina[] pezziBianchi = new Pedina[16];
private Pedina[] pezziNeri = new Pedina[16];
private PosizioneScacchiera[][] pos = new PosizioneScacchiera[8][8];
private FinestraFineGioco fine;
private JFrame frame;
private JButton btn;
private JPanel pnlCase;
private Icon icon;
private JLabel lblTmp;
private boolean coloreCasa = true;
public Scacchiera(Board board)
{
board.inizializza();
frame = new JFrame("Scacchi");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
lblTmp = new JLabel();
pnlCase = new JPanel();
pnlCase.setPreferredSize(new Dimension(400, 400));
pnlCase.setLayout(new GridLayout(8,8));
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
// riempio la scacchiera di caselle bianche e nere e dei pezzi
for(int i = 0; i<8; i++)
{
for(int j = 0; j<8; j++)
{
btn = new JButton();
icon = new ImageIcon(board.getNomeFileImg(new PosizioneScacchiera(i,j)));
btn.setBackground(coloreCasa ? Color.white:Color.black);
btn.setPreferredSize(new Dimension(50,50));
btn.setIcon(icon);
pnlCase.add(btn);
coloreCasa = !coloreCasa;
}
coloreCasa = !coloreCasa;
}
cp.add(pnlCase);
cp.add(lblTmp);
frame.add(cp);
frame.addWindowListener(new FinestraFineGioco());
frame.pack();
addMouseListener(this);
}
public void mouseClicked(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
}
avevo già scritto su questo forum per quanto riguarda questo dannato progetto..ma per motivi di lavoro nn ho potuto continuare a dedicarmi a questa impresa.
Sono rimasto bloccato per quanto riguarda gli eventi: nelle specifiche mi dice ke quando seleziono un pezzo, la casella selezionata deve cambiare colore. Ho cercato di implementare in una classe la scacchiera implementando MouseListener, ma nn mi viene fuori granchè..:muro:
Di seguito riporto la classe(le pedine sono ancora da strutturare come si deve, l'unica parte ke mi interessa sono gli eventi per il momento).
Grazie a chi mi vorrà aiutare!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* La classe contiene lo sviluppo del frame principale e rappresenta la scacchiera.
*/
public class Scacchiera extends JFrame implements MouseListener
{
// variabili istanza
private Pedina[] pezziBianchi = new Pedina[16];
private Pedina[] pezziNeri = new Pedina[16];
private PosizioneScacchiera[][] pos = new PosizioneScacchiera[8][8];
private FinestraFineGioco fine;
private JFrame frame;
private JButton btn;
private JPanel pnlCase;
private Icon icon;
private JLabel lblTmp;
private boolean coloreCasa = true;
public Scacchiera(Board board)
{
board.inizializza();
frame = new JFrame("Scacchi");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
lblTmp = new JLabel();
pnlCase = new JPanel();
pnlCase.setPreferredSize(new Dimension(400, 400));
pnlCase.setLayout(new GridLayout(8,8));
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
// riempio la scacchiera di caselle bianche e nere e dei pezzi
for(int i = 0; i<8; i++)
{
for(int j = 0; j<8; j++)
{
btn = new JButton();
icon = new ImageIcon(board.getNomeFileImg(new PosizioneScacchiera(i,j)));
btn.setBackground(coloreCasa ? Color.white:Color.black);
btn.setPreferredSize(new Dimension(50,50));
btn.setIcon(icon);
pnlCase.add(btn);
coloreCasa = !coloreCasa;
}
coloreCasa = !coloreCasa;
}
cp.add(pnlCase);
cp.add(lblTmp);
frame.add(cp);
frame.addWindowListener(new FinestraFineGioco());
frame.pack();
addMouseListener(this);
}
public void mouseClicked(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
}