Java 拖放布局中的定位

Java 拖放布局中的定位,java,drag-and-drop,awt,Java,Drag And Drop,Awt,我这里有一些关于拖放的问题。我已经为拖放创建了代码,它工作得很好。但问题是,正如你在下面的图片中所看到的,每个罐子只能装4个糖果,但是当我把糖果从第二个罐子拖到第一个罐子时,它仍然可以被扔进去。我怎样才能使每个罐子只能装四颗糖果呢 这是我为拖放所做的编码。我应该在这个代码中的某个地方使用if-else语句来解决我的问题吗 public boolean onDrag(View v, DragEvent event) { int action = event.getAction(); V

我这里有一些关于拖放的问题。我已经为拖放创建了代码,它工作得很好。但问题是,正如你在下面的图片中所看到的,每个罐子只能装4个糖果,但是当我把糖果从第二个罐子拖到第一个罐子时,它仍然可以被扔进去。我怎样才能使每个罐子只能装四颗糖果呢

这是我为拖放所做的编码。我应该在这个代码中的某个地方使用if-else语句来解决我的问题吗

  public boolean onDrag(View v, DragEvent event) {
  int action = event.getAction();
  View view = (View) event.getLocalState();
  switch (event.getAction()) {
  case DragEvent.ACTION_DRAG_STARTED:
    // Do nothing
    break;
  case DragEvent.ACTION_DRAG_ENTERED:
    v.setBackgroundDrawable(normalShape);
    break;
  case DragEvent.ACTION_DRAG_EXITED:
    v.setBackgroundDrawable(normalShape);
    break;
  case DragEvent.ACTION_DROP:
    // Dropped, reassign View to ViewGroup

    ViewGroup owner = (ViewGroup) view.getParent();
    owner.removeView(view);
    LinearLayout container = (LinearLayout) v;
    container.addView(view);
    view.setVisibility(View.VISIBLE);
    break;
  case DragEvent.ACTION_DRAG_ENDED:
    //v.setBackgroundDrawable(normalShape);
    if (dropEventNotHandled(event))
    {
        view.setVisibility(View.VISIBLE);
    }
    break;
  default:
    break;
  }
  return true;
}

private boolean dropEventNotHandled(DragEvent event) {
    // TODO Auto-generated method stub
    return !event.getResult();
}
  }
  }  

在case DragEvent.ACTION\u DRAG\u end块中,您应该检查jar中是否有空间,如果没有,则返回false以使drop操作失败。

如何检查jar中是否有空间?我们无法告诉您,因为我们看不到其余的代码。。。您需要在程序中查找糖果分配给罐子的位置。这些糖果已经在罐子中了。您想看一下xml代码吗?我认为您最好多读一点,这样您就可以理解您的源代码。要更快地获得更好的帮助,请发布一篇文章。