Java 在修改之前获取SWT文本组件的文本

Java 在修改之前获取SWT文本组件的文本,java,swt,listener,Java,Swt,Listener,我有一个SWTText组件,其中有一个Modify listener,当我在文本上写东西时,监听器代码被执行,在监听器内部,我获取并打印新文本,因此,例如,如果原始文本是“initial Text”,当我键入一些东西时,让我们说“initial text2”,监听器将打印“initial text2”,这很好,但在修改文本之前,我还需要原始文本 有办法做到这一点吗?我不想使用keyPressedlistener,因为当用户使用鼠标粘贴文本时,它将无法处理 到目前为止,我的代码如下所示: Text

我有一个SWT
Text
组件,其中有一个Modify listener,当我在文本上写东西时,监听器代码被执行,在监听器内部,我获取并打印新文本,因此,例如,如果原始文本是
“initial Text”
,当我键入一些东西时,让我们说
“initial text2”
,监听器将打印
“initial text2”
,这很好,但在修改文本之前,我还需要原始文本

有办法做到这一点吗?我不想使用
keyPressed
listener,因为当用户使用鼠标粘贴文本时,它将无法处理

到目前为止,我的代码如下所示:

Text myText = new Text(parent, SWT.NONE);
myText.setText("initial text");

myText.addModifyListener(new ModifyListener() {
    public void modifyText(ModifyEvent e) {
        //Get here the original text
        String content = myText.getText(); //This line return the modified string
    }
});

侦听
SWT。验证
而不是
SWT。修改

Text text = new Text(shell, SWT.BORDER);
text.addListener(SWT.Verify, new Listener()
{
    @Override
    public void handleEvent(Event e)
    {
        // Get the source widget
        Text source = (Text) e.widget;

        // Get the text
        final String oldS = source.getText();
        final String newS = oldS.substring(0, e.start) + e.text + oldS.substring(e.end);

        System.out.println(oldS + " -> " + newS);
    }
});
这将在修改前后打印文本