我有一个RCP应用程序,其中有一个命令,它会启动某个实体的向导(编辑向导,显示实体的所有字段,用户可以更改它并完成向导来保存这个实体)。我正在使用JFace数据绑定将实体的字段绑定到swt文本和组合。
该命令具有处理程序(包含向导调用),并且此处理程序绑定到某个按钮,并且所有按钮都可以正常工作。
然后我需要将此命令绑定到某个组合键(例如Ctrl E)。我正在为它使用组织.eclipse.ui.绑定扩展:
<key
commandId="com.project.command"
contextId="com.project.view.context"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+E">
</key>
“com.project.view.context”是我在两个不同的视图中绑定到相同的组合键,看起来不错(并在这两个视图中激活不同的命令)。
但是当我通过这个组合键打开我的向导时,有一个问题:
SWT文本字段不会绑定到实体的整数字段。对于字符串字段来说,这一切都没问题,它们绑定得很好。但是整型字段没有(里面只有空白)。
我尝试过的:
>
我调试了我的向导和向导页面,所有时间实体状态都很好(它们的Integer字段是正确的,不是0或null)
已尝试将整数写入字符串转换器以进行 JFace 绑定。没有帮助。
我尝试禁用此字段的JFace绑定,并手动设置文本字段值:
swtTextField.setText(entity.getIntegerField().toString());
但这也没用!看起来这不是JFace绑定问题,而是SWT文本问题?在这种情况下调试:
entity.getIntegerField()。toString() = "1234 "在" setText "之前和之后
(当我不是从键组合命令调用运行这个调试时,一切看起来都很好,“setText”后面是swtTextField.getText=“1234”)
试图将绑定扩展的上下文更改为默认值(“org.eclipse.ui.contexts.window”),但这也没有帮助。
所以,总而言之,当我通过按钮(或上下文菜单)调用命令时,一切都很好。但Integer有一个问题-
有什么想法吗?
补充:我发现,问题出在组合键上。当组合键包含非英语键符号(Ctrl non-english-key my language键符号,因为我们的应用程序使用非英语组合键)时,问题就出现了:SWT文本不接受整数值。当组合键是英文(Ctrl english-key)时,一切正常。
所有其他命令(没有SWT文本字段)也可以正常工作,并且它们也绑定到Ctrl非英语组合键…
这很奇怪,我还是不明白,为什么那个汉纳普斯…
几个月前我碰到了这个问题。问题出在JFace数据绑定上。帮助:
org.eclipse.core.databinding.observe.value。IObservableValue
用于观察您的文本
。因此,您可以这样编写代码:IObservableValue yourTextObserveTextObserverWidget=SWTObservaables。observeText(yourText,SWT.Modify)
使用org.eclipse.core.databinding.beans。BeansObservables
以观察实体的值,这样您就可以编写如下代码:。observeValue(您的模型,“yourInt”)
使用org.eclipse.core.databinding。DataBindingContext
并像这样绑定您的IObservableValue
bindingContext。bindValue(您的TextObserveTextObserverWidget,您的ModelTemplateObservateValue,null,null)因此,将您的模型绑定到< code>Text的最终代码将如下所示:
DataBindingContext bindingContext = new DataBindingContext();
IObservableValue yourTextObserveTextObserveWidget = SWTObservables.observeText(yourText, SWT.Modify);
IObservableValue yourModelTemplateObserveValue = BeansObservables.observeValue(yourModel, "yourInt");
bindingContext.bindValue(yourTextObserveWidget, yourModelTemplateObserveValue, null, null);
如果您有任何其他问题,请检查数据绑定的留档。这在我的程序中使用String
、boolean
和整数
类型。不过,我还没有测试其他任何东西。
我正在尝试在SWT窗口中制作一个大的白色框来显示信息。我希望它看起来与标签不同,但我也希望它不可编辑。 到目前为止,我只能创建一个灰色背面(顶部)的中午可编辑输入框。我的目标是使用(在下)获得的外观。 (< code>List的问题是它只能在每个列表项的一行上显示文本。我可能需要显示一段文字)。
问题内容: 我有一个用netbeans开发的应用程序,我想在显示面板时将焦点设置为一定。我已经阅读了许多文章,并尝试了各种方法,但没有奏效。主要问题之一是在哪里放置所需的代码,我认为在我的情况下是 有一些指示使用Window Listener的帖子,但是随着netbeans生成GUI,我无法看到如何实现接口,因为我无法编辑创建jPANEL等的代码。整个过程非常令人沮丧,我真的没有相信这应该很困难。
我有一个下拉列表,由选择元素初始化。 如何创建mvvm绑定到选定的数据文本字段? 我没有数据源。 我必须绑定到选定的文本。例如:和 更新
问题内容: 抱歉,如果这是一个基本问题: 我一直在尝试按照此处的教程在笔记本电脑上设置Python 。在 PIP下,VIRTUALENV + VIRTUALENVWRAPPER 副标题表示 现在设置virtualenvwrapper: 2 $ export MSYS_HOME=/c/msys/1.0 3 $ source /usr/local/bin/virtualenvwrapper.sh 上面
如何在JavaFX中设置的宽度? 我试过这个: 但我看不到任何变化。
如何设置组件的焦点? 我已经尝试了上述代码,但不起作用:(