我正在尝试在我的textarea中创建单词建议功能。
如果用户输入"这是测试"并按ctrl这应该给用户选择匹配" test" ..就像按下ctrl一样,它应该弹出一个单词" testing"例如。
因为我需要得到的是用户按下ctrl的字...即#34; test"在那种情况下。
我想在用户按下ctrl时获取光标索引..然后返回直到有空格,直到该索引将是我的单词..
但我不知道如何在某些指定的游标索引处获取该字符。
任何想法..
感谢
答案 0 :(得分:0)
不是TextArea#getCursorPos()
你在寻找什么?
这应该做:
final TextArea area = new TextArea();
area.addKeyDownHandler(new KeyDownHandler()
{
@Override
public void onKeyDown(KeyDownEvent event)
{
// Check if ctrl is pressed
int position = area.getCursorPos();
if(position > 0)
System.out.println(area.getText().toCharArray()[position - 1]);
}
});
那将给你光标的位置。然后,您可以使用该信息来获取前面的角色"光标。
如果你无法弄清楚如何获得这个词,请使用:
String text = area.getText();
char[] parts = text.toCharArray();
int startPosition = 0;
for(int i = position - 1; i >= 0; i--)
{
if(parts[i] == ' ')
{
startPosition = i;
break;
}
}
System.out.println(text.substring(startPosition, position - 1));
您可能需要稍微修正索引以使边界正确。