2014-02-25 71 views
0

我试图构建一个应用程序,我需要从菜单中选择小部件&将它拖放到容器上(不是CUT &粘贴,但选择小部件&在其他Container上创建其相应的实例)拖动&下降的方式。拖放CodeName One

我无法在此找到任何帮助。请帮忙。

到目前为止,我已经做到了这一点,

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) { 

没有被调用。

回答

1

您将ElementContainer及其子设置为放置目标。您将元素容器添加到元素容器中,但由于它的默认值为FlowLayout,所以它的大小不会太大,我假定ElementContainer没有合适的布局大小来给它适当的大小。

将ElementContainer的布局设置为BorderLayout将c放置在中心位置,并且不要将ElementContainer设置为放置目标。你应该看看我如何专门处理布局管理器的视频。设置首选大小不是正确的方向。