Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 堆叠的矩形不能正常移动_Java - Fatal编程技术网

Java 堆叠的矩形不能正常移动

Java 堆叠的矩形不能正常移动,java,Java,所以我得到了一个项目的启动代码,基本上是我所在的java类的家庭作业,但似乎无法得到完全正确的解决方案。基本思路是,;图形显示中有一组矩形,每个矩形都可以单击。如果单击顶部下方的某个矩形,则单击的矩形将显示在顶部。将进行检查,以确保仅当您单击该框时,以及仅当您单击该框的可见部分时,才会发生这种情况 这是问题代码的一部分,我应该添加的部分: public void moveToTop( Point p ) { int movingRectangle = -1; for(int i

所以我得到了一个项目的启动代码,基本上是我所在的java类的家庭作业,但似乎无法得到完全正确的解决方案。基本思路是,;图形显示中有一组矩形,每个矩形都可以单击。如果单击顶部下方的某个矩形,则单击的矩形将显示在顶部。将进行检查,以确保仅当您单击该框时,以及仅当您单击该框的可见部分时,才会发生这种情况

这是问题代码的一部分,我应该添加的部分:

public void moveToTop( Point p ) {
    int movingRectangle = -1;

    for(int i = 0; i > rects.size(); i++) {
        if(isInside(rects.get(i), p)) {
            movingRectangle = i;
        }
    }
    if(movingRectangle >= 0) {
        addRect(deleteRect(movingRectangle));
    }
}
private boolean isInside(Rectangle143 r, Point p) {
    return r.getX() <= p.getX()
        && p.getX() <= r.getX() + r.getWidth()
        && r.getY() <= p.getY()
        && p.getY() <= r.getY() + r.getHeight();
}
public void moveToTop(点p){
int movingRectangle=-1;
对于(int i=0;i>rects.size();i++){
if(isInside(rects.get(i),p)){
移动矩形=i;
}
}
如果(移动矩形>=0){
addRect(deleteRect(movingRectangle));
}
}
专用布尔isInside(矩形,点p){

return r.getX()for循环中有一个简单的错误

for(int i = 0; i > rects.size(); i++)
应该是

for(int i = 0; i < rects.size(); i++)
for(int i=0;i

注意从>到好奇的变化:你为什么称你的类为“Rectangle143”?哈哈,这是我,错过了最简单的东西。现在我的下一个问题是,有没有办法让这更有效?一旦你找到要移动的矩形,你就可以打破循环。这意味着它不会继续搜索其余的矩形。