ZK MVC 在两个列表框之间拖放
ZK MVC Drag and Drop between two Listbox
我在 ZK MVC 控制器中遇到问题。
我想管理 2 个列表框(左右)之间的拖放操作。
此代码加载右侧的项目:
for(int i=0;i<lstEtic.size();i++) {
Listitem li = new Listitem();
System.out.println(lstEtic.get(i));
addListcell(li,lstEtic.get(i));
right.appendChild(li);
}
左侧列表框为空。
问题:有人能给我一个代码示例来管理 Java 控制器中的拖放事件吗?
这里是一个基于documentation I mentioned的例子。将所有必要的属性设置和 onDrop 侦听器移动到 Java:
非常容易
<hlayout width="400px" height="400px" apply="path.to.MyComposer">
<listbox id="left" hflex="1" vflex="1" />
<listbox id="right" hflex="1" vflex="1" />
</hlayout>
public class MyComposer
extends SelectorComposer<Component>
{
@Wire
private Listbox left;
@Wire
private Listbox right;
@Override
public void doAfterCompose(Component comp)
throws Exception
{
super.doAfterCompose(comp);
for (int i = 0; i < 10; i++)
{
Listitem li = new Listitem();
li.appendChild(new Listcell("Item " + i));
li.setDraggable("true");
right.appendChild(li);
}
left.setDroppable("true");
left.addEventListener(Events.ON_DROP,
(DropEvent event) -> left.appendChild(event.getDragged()));
}
}
我在 ZK MVC 控制器中遇到问题。
我想管理 2 个列表框(左右)之间的拖放操作。
此代码加载右侧的项目:
for(int i=0;i<lstEtic.size();i++) {
Listitem li = new Listitem();
System.out.println(lstEtic.get(i));
addListcell(li,lstEtic.get(i));
right.appendChild(li);
}
左侧列表框为空。
问题:有人能给我一个代码示例来管理 Java 控制器中的拖放事件吗?
这里是一个基于documentation I mentioned的例子。将所有必要的属性设置和 onDrop 侦听器移动到 Java:
非常容易<hlayout width="400px" height="400px" apply="path.to.MyComposer">
<listbox id="left" hflex="1" vflex="1" />
<listbox id="right" hflex="1" vflex="1" />
</hlayout>
public class MyComposer
extends SelectorComposer<Component>
{
@Wire
private Listbox left;
@Wire
private Listbox right;
@Override
public void doAfterCompose(Component comp)
throws Exception
{
super.doAfterCompose(comp);
for (int i = 0; i < 10; i++)
{
Listitem li = new Listitem();
li.appendChild(new Listcell("Item " + i));
li.setDraggable("true");
right.appendChild(li);
}
left.setDroppable("true");
left.addEventListener(Events.ON_DROP,
(DropEvent event) -> left.appendChild(event.getDragged()));
}
}