Text
我觉得真的很愚蠢,但是当用户更改或StyledText
输入字段中的插入符号时,我似乎无法通知侦听器。我已经尝试过SelectionListener
(CaretListener
仅限 StyledText),但是当我使用箭头键在多行输入字段内移动插入符号时,没有一个可靠调用。CaretListener
有时会被调用,但是,例如,在选择所有文本并点击之后不会被调用Del
。
问问题
591 次
1 回答
0
在你的情况下,听SWT.MouseUp
并且SWT.KeyUp
似乎是要走的路:
public static void main(String[] args)
{
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
Text text = new Text(shell, SWT.BORDER);
Listener listener = new Listener()
{
@Override
public void handleEvent(Event arg0)
{
System.out.println("Event");
}
};
text.addListener(SWT.KeyUp, listener);
text.addListener(SWT.MouseUp, listener);
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
您可以使用变量跟踪旧的插入符号位置,static
并将其与Listener
.
另一个非常方便的事件是SWT.Verify
每当包含的文本发生更改时调用。请注意,这不会处理鼠标的位置变化。
于 2013-04-08T10:11:50.027 回答