java - 上下移动项目

标签 java gwt

我想在单击按钮后将列表中的所选项目向上或向下移动,我使用gwt,这就是我之前所做的:

  @UiHandler("Up")
    void UpClick(ClickEvent e) {
   ListBox item;
        int i=item.getSelectedIndex();
            if(i>0){
                // add duplicated item in the list
                item.addItem(item.getItemText(i),String.valueOf(i-1));
                // make it the current item
                i=i-2;
                // delete the old occurence of this item
                item.removeItem(i+2);
            }
        }



   @UiHandler("Down")
    void DownClick(ClickEvent e) {
        int i=item.getSelectedIndex();
            if((i!=-1) && (i<item.getItemCount()-1)) {
                item.addItem(item.getItemText(i),String.valueOf(i+1));
                i=i+2;
                item.removeItem(i-2);
            }
        }

在我选择项目并单击“向上”按钮后,我成为向下移动的所选项目,而不是向上移动(随所选项目之前的项目的位置变化) 之前:

item1
item2
**item3** 
item4

选择 item3 后,我希望它将位于 item2 位置并且 item2 下降(位置更改)

喜欢:

item1
**item3**
item2
item4

与“向下”按钮相同,所选项目移至列表末尾,而不仅仅是将所选项目之后的项目向下更改位置。

有人可以告诉我我在这里做错了什么吗?

最佳答案

您似乎对方法 addItem(String, String) 的作用感到困惑。

来自documentation (强调我的):将一个项目添加到列表框中,并为该项目指定一个初始值

如您所见,第二个参数指定添加项目的索引。但是,insertItem(String, int) 方法确实指定索引。您可能会想使用它:

@UiHandler("Up")
void UpClick(ClickEvent e) {
    ListBox item;
    int i=item.getSelectedIndex();
    if(i>0){
        // add duplicated item in the list
        item.insertItem(item.getItemText(i),i-1);

        // delete the old occurence of this item
        item.removeItem(i+1);
    }
}


@UiHandler("Down")
void DownClick(ClickEvent e) {
    int i=item.getSelectedIndex();
    if((i!=-1) && (i<item.getItemCount()-1)) {
        item.insertItem(item.getItemText(i),i+2);

        item.removeItem(i);
    }
}

我还冒昧地修正了你的索引数学。

关于java - 上下移动项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25529815/

相关文章:

Java native 库调用另一个 DLL 并且不在 java.library.path 中搜索

gwt - 是否可以始终在 MGWT ScrollPanel 中显示滚动条?

java - 从第三方获取 JSON 数据并绕过 SOP

java - GPE/GWT 插件不起作用

java - 在gwt中调整布局面板的大小

gwt - 取消表单提交

java - 在 Java 中为给定的结果集生成 MySQL 查询

java - @QueryResult 映射错误

java - 从字符串数组中删除空字符串

java - 如何在java中生成ZipFile