我有一个ListField,它是一个可以选择和删除的项目的长垂直列表。删除项目后,列表将滚动回到顶部。我可以使用setSelectedIndex(rowIndex)返回我一直在查看的列表中的位置,但这不会保留我在屏幕上查看的行。相反,该行显示在屏幕的底部,因为一旦屏幕上出现正确的索引,它就会停止滚动。
有没有办法可以删除一行并保留我的列表视图/点?
答案 0 :(得分:2)
刚刚意识到我使用了错误的ListField.setSize()函数。
ListField.setSize(int size)将焦点发送回列表顶部,但是如果需要,可以使用ListField.setSize(int size,int focusRow)将焦点保留在“currentIndex”。 希望这有助于某人
答案 1 :(得分:1)
保存列表中的当前位置(通过myListField.getSelectedIndex()
),比方说
int myVar = myListField.getSelectedIndex();
删除项目
使用myVar
,并使用当前列表大小和myVar
值计算并通过myListField.setSelectedIndex(int index);
设置列表索引使用另一个线程和Application.invokeLater(Runnable thread);
来避免此操作更新应用程序的UI时发生事件锁定问题。
就是这样。