Estoy intentando colocar fichas dentro de un tablero pero cuando coloco los parámetros donde deseo colocar la ficha se cae, Es código de POO
Estoy tratando de realizar el Juego de Go y esta seria la parte logica del tablero
Estas son las 3 clases que estoy trabajando por el momento
import javax.swing.ImageIcon;
import java.awt.Graphics;
public abstract class Ficha{
private boolean color;
private ImageIcon imagen;
private int fila;
private int columna;
private int y;
private int x;
public Ficha(boolean color, ImageIcon imagen, int fila, int columna, int y, int x){
setColor(color);
setImagen(imagen);
setFila(fila);
setColumna(columna);
setY(y);
setX(x);
}//Fin constructor con párametros
public void setColor(boolean color){
this.color=color;
}//Fin setColor
public boolean getColor(){
return color;
}//Fin getColor
public void setImagen(ImageIcon imagen){
this.imagen=imagen;
}//Fin setImagen
public ImageIcon getImagen(){
return imagen;
}//Fin getImagen
public void setFila(int fila){
this.fila=fila;
}//Fin setFila
public int getFila(){
return fila;
}//Fin getFila
public void setColumna(int columna){
this.columna=columna;
}//Fin setColumna
public int getColumna(){
return columna;
}//Fin getColumna
public void setX(int x){
this.x=x;
}//Fin setX
public int getX(){
return x;
}//Fin getX
public void setY(int y){
this.y=y;
}//Fin setY
public int getY(){
return y;
}//Fin getY
public void dibujar(Graphics g){
imagen.paintIcon(null,g,getX(),getY());
}//Fin dibujar
public abstract boolean colocar(int filaDestino, int columnaDestino, Tablero tablero);
}//Fin clase Pieza
import javax.swing.JOptionPane;
public class Juego{
public static void main(String args[]){
Tablero tablero= new Tablero();
Ficha fichaColocar;
//int fila;
//int columna;
int filaDestino;
int columnaDestino;
String continuar;
do{
//fila=Integer.parseInt(JOptionPane.showInputDialog(tablero.toString()+"\nDigite la fila de pieza que desea mover"));
//columna=Integer.parseInt(JOptionPane.showInputDialog(tablero.toString()+"\nDigite la columna de pieza que desea mover"));
filaDestino=Integer.parseInt(JOptionPane.showInputDialog(tablero.toString()+"\nDigite la fila donde desea poner la ficha"));
columnaDestino=Integer.parseInt(JOptionPane.showInputDialog(tablero.toString()+"\nDigite la columna donde desea poner la ficha"));
fichaColocar=tablero.getFicha(filaDestino,columnaDestino);
if(fichaColocar.colocar(filaDestino, columnaDestino, tablero)){
JOptionPane.showMessageDialog(null, tablero.toString());
}//Fin if
else{
JOptionPane.showMessageDialog(null,"La colocacion no es valido");
}//Fin else
continuar=JOptionPane.showInputDialog("Desea poner otra ficha");
}while(continuar.equalsIgnoreCase("s"));
}//Fin main
}//Fin clase Tablero
import javax.swing.ImageIcon;
public class Tablero{
private Ficha fichas[][];
private int coordenadasY[]={ 140,195,250,305,360,415,470,525,580};//Fila
private int coordenadasX[]={249,290,333,374,415,458,498,539,582};//Comlunas
public Tablero(){
fichas=new Ficha[8][8];
}//Fin constructor sin párametros
public void setFicha(int fila, int columna, Ficha ficha){
fichas[fila][columna]=ficha;
}//Fin setFicha
public Ficha getFicha(int fila, int columna){
return fichas[fila][columna];
}//Fin getTablero
public boolean isPosicionValida(int fila, int columna){
if(fichas[fila][columna]!=null){
return true;
}//Fin if
else{
return false;
}//Fin else
}//Fin isPosicionVacia
public boolean isPosicionVacia(int fila, int columna){
if(fichas[fila][columna]==null){
return true;
}//Fin if
else{
return false;
}//Fin else
}//Fin isPosicionVacia
public int lengthFila(){
return fichas.length;
}//Fin lengthFila
public int lengthColumna(int fila){
return fichas[fila].length;
}//Fin lengthColumna
public String toString(){
String elementos="";
for(int fila=0;fila<lengthFila();fila++){
for(int columna=0;columna<lengthColumna(fila);columna++){
elementos+=fichas[fila][columna]+"\t";
}//Fin for
elementos+="\n";
}//Fin for
return elementos;
}//Fin toString
}//Fin clase Tablero