Java 尝试创建一个方法,该方法采用鼠标单击的位置,并应返回作为所选单元格的单元格编号
我想创建并调用一个方法来检查网格上是否发生了单击。此方法应位于鼠标单击的位置,并应返回作为选定单元格的单元格编号。如果单击了某个单元格,则需要确定单击了哪个单元格并返回该单元格 号码。确保如果已选择单元格,且用户未选择新单元格,则旧单元格 选定单元格仍保持选定状态。如果用户在某个单元格中单击,并且该特定单元格 已选择,应取消选择。在这种情况下,它应该返回-1。 我这样做是为了获取单元格编号,但无法确保它保持选中状态,也无法返回-1以取消选中Java 尝试创建一个方法,该方法采用鼠标单击的位置,并应返回作为所选单元格的单元格编号,java,function,for-loop,processing,Java,Function,For Loop,Processing,我想创建并调用一个方法来检查网格上是否发生了单击。此方法应位于鼠标单击的位置,并应返回作为选定单元格的单元格编号。如果单击了某个单元格,则需要确定单击了哪个单元格并返回该单元格 号码。确保如果已选择单元格,且用户未选择新单元格,则旧单元格 选定单元格仍保持选定状态。如果用户在某个单元格中单击,并且该特定单元格 已选择,应取消选择。在这种情况下,它应该返回-1。 我这样做是为了获取单元格编号,但无法确保它保持选中状态,也无法返回-1以取消选中 int cellSelected(int x, int
int cellSelected(int x, int y){
int selected=-2;
int left=40;
for(int num=0; num<=12*8; num++)
{
int col = num%8;
int row = num/8;
left = 40+CELL_SIZE*col;
int right = left+CELL_SIZE;
int top = 40+CELL_SIZE*row;
int bottom = top+CELL_SIZE;
if (x >= left && x < right && y >= top && y < bottom)
{
selected = num;
}
}
return selected;
}
intcellselected(intx,inty){
选定的整数=-2;
int左=40;
对于(int num=0;num=left&&x=top&&y
要计算单元格的索引,只需将鼠标相对位置(相对于网格原点)除以单元格大小即可
intcellselected(intx,inty){
//鼠标相对于栅格的位置
int px=x-40;
int-py=y-40;
//计算鼠标是否在网格中,返回-1 else
int cols=8;
int行=12;
如果(px<0 | | py<0 | | px>cols*单元格大小| | px>cols*单元格大小){
返回-1;
}
//计算单元索引(单元的行和列)
int col=像素/单元大小;
int row=py/单元大小;
//单元格的返回索引
返回行*cols+col;
}
@rabbi76。我的错误。我没有仔细阅读。谢谢你的那部分。现在如果我想返回-1,如果我再次点击同一单元格,我该怎么做??请提供帮助。@ArshdeepSekhon您必须存储上次“单击”的单元格的索引,并评估是否再次单击。