Java 2D数组JButtons不适用于get()方法?
我一直想下国际象棋,但却被困在两段式的对弈中 这是我的棋盘课Java 2D数组JButtons不适用于get()方法?,java,swing,get,jbutton,swap,Java,Swing,Get,Jbutton,Swap,我一直想下国际象棋,但却被困在两段式的对弈中 这是我的棋盘课 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; Xpositio
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;
}
}
}
试着交换两块…但不起作用?请帮忙。。。
方法
getXposition
和getYposition
是自定义ChessSquare
类的实例方法,而不是ChessSquare
数组。要访问这些方法,您必须引用2D
数组中的元素,例如:
xPos1 = s[0][0].getYposition();
yPos1 = s[0][0].getXposition();
为什么要使简单的事情复杂化,不要这样做,永远不要作为答案:-),这是关于准备您之前需要的所有东西,初始化…,并且使用LayoutManager也可以返回坐标(在大多数情况下,JComponent可以在此数组中交换,但(相同)在大多数情况下没有理由这样做==错误的概念)