2D数组JButtons不适用于get()方法?

时间:2013-03-19 00:15:55

标签: java swing get jbutton swap

我一直在尝试做国际象棋游戏并且卡在交换两个方面

这是我的ChessSquare类

   public class ChessSquare extends JButton 



{ 




public int Yposition;
public int Xposition;
private String Type;
public ChessSquare( Icon s, int y , int x , String piece )

{
 super(s);

 Yposition = y;
 Xposition = x;
 Type = piece ;
}         

public int getXposition()
 {
   return this.Xposition;
 }  


    public int getYposition()
 {
   return this.Xposition;
 }  


    public String getType()
   {
      return "";
   }

 }  

然后我将此添加到ChessBoard类,使用ChessSquare类作为2D数组

     public class ChessBoard extends JFrame implements ActionListener
  {
     String type;
     ChessSquare[][] s = new ChessSquare[8][8];
     int xPos1,xPos2,yPos1,yPos2,i,j;
     JPanel panel;


    ........


    public void actionPerformed(ActionEvent e)
  {
       Boolean flag = false ;

         if(!flag)
  {
     xPos1 = s.getYposition();
     yPos1 = s.getXposition();

     flag = true;
   }
     else
   {

    xPos2 = s.getYposition();
    yPos2 = s.getXposition();


    s[xPos1][yPos1] = s[xPos2][yPos2];
    s[xPos2][yPos2] = s[xPos1][yPos1];
    flag = false;


 }


 }

 } 

尝试交换两件......但它不起作用?请帮忙... error

1 个答案:

答案 0 :(得分:0)

方法getXpositiongetYposition是自定义ChessSquare类的实例方法,而不是您的ChessSquare 数组。要访问这些方法,您必须引用2D数组中的元素,例如:

xPos1 = s[0][0].getYposition();
yPos1 = s[0][0].getXposition();