我正在尝试构建一个应用程序,我需要从菜单中选择小部件。将它放在容器上(不是CUT&粘贴,但选择小部件&在其他Container上创建其对应的实例)在Drag&放弃方式。
我无法找到任何帮助。请帮忙。
到目前为止,我已经这样做了,
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 class MyContainer extends Container {
public MyContainer() {
this.setDropTarget(true);
}
@Override
public void drop(Component dragged, int x, int y) {
System.err.println(dragged + " : " + x + " : " + y);
}
}
但是方法,
public void drop(Component dragged, int x, int y) {
未被调用。
答案 0 :(得分:1)
您将ElementContainer及其子项都设置为放置目标。你将c添加到Elements容器中,但由于它是FlowLayout
(默认值),它的大小不会很大,我假设ElementContainer没有合适的布局大小来给出它的大小合适。
将ElementContainer的布局设置为BorderLayout
将c置于中心,并且不要使ElementContainer成为放置目标。您应该看看我如何专门处理布局管理器的视频。设置首选大小不是正确的方向。