Codenameone 在代号1中拖放

Codenameone 在代号1中拖放,codenameone,Codenameone,我正在尝试构建一个应用程序,在这个应用程序中,我需要从菜单中选择widget并将其拖放到容器上(不是剪切和粘贴,而是选择widget并在其他容器上创建其相应的实例) 在这方面我找不到任何帮助。请帮忙 到目前为止,我已经做到了 Label label = new Label("Top Left"); label.setPreferredW(200); label.setPreferredH(30); label.getUnselectedStyle().setBgColor(0xff0000);

我正在尝试构建一个应用程序,在这个应用程序中,我需要从菜单中选择widget并将其拖放到容器上(不是剪切和粘贴,而是选择widget并在其他容器上创建其相应的实例)

在这方面我找不到任何帮助。请帮忙

到目前为止,我已经做到了

Label label = new Label("Top Left");
label.setPreferredW(200);
label.setPreferredH(30);
label.getUnselectedStyle().setBgColor(0xff0000);
label.setDraggable(true);
stateMachine.findForm().addComponent(label);

// Setting parent can be recieve drop
stateMachine.findElementContainer().setDropTarget(true);

Container c = new MyContainer();
stateMachine.findElementContainer().addComponent(c);

但是方法,

public void drop(Component dragged, int x, int y) {

未被调用。

您将ElementContainer及其子级都设置为放置目标。您可以将c添加到元素容器中,但由于它是一个
FlowLayout
(默认设置),所以它的大小不会太大,我假设ElementContainer没有合适的布局大小来为它提供合适的大小

将ElementContainer的布局设置为
BorderLayout
将c放置在中间,不要将ElementContainer也设置为放置目标。你应该看看how do I视频,特别是关于布局管理器的视频。设置首选大小不是正确的方向

public void drop(Component dragged, int x, int y) {