Swt SetText方法未在修改侦听器中设置值

Swt SetText方法未在修改侦听器中设置值,swt,Swt,我有一个要求,文本值应该修改并设置修改后的值。 文本值是用户选择的文件路径 txtPath.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { // TODO Auto-generated method stub Text

我有一个要求,文本值应该修改并设置修改后的值。 文本值是用户选择的文件路径

txtPath.addModifyListener(new ModifyListener() {

    @Override
                    public void modifyText(ModifyEvent e) {
                        // TODO Auto-generated method stub
                        Text text= (Text)e.widget;                      
                        File fi= new File(text.getText());
                        text.setText(fi.getParent().toString());

                    }
                });
我在设置值时出错

如果用户选择的路径是“C:\test\folder\sample.xml”
修改文本路径应设置为新值“C:\test\folder”

每当值更改时,都会触发修改事件,这意味着文本字段中的每个按键都会触发修改事件,同时也会由正在调用的setText()触发。您可能希望侦听焦点丢失事件,而不是修改事件。

获取什么错误?设置值时发生错误是获取对话框中显示的错误。IllegalArgumentException是Thrown将stacktrace的完整错误添加到您的问题中。。。同时,清理并重新格式化代码段