【发布时间】:2014-12-20 01:45:32
【问题描述】:
我已经挣扎了一个小时来完成一件非常基本的事情。事实上,我有一个名为 Template 的类,它拥有一个 Map<String,String> :
public class Template extends AbstractLateXElement {
protected final Map<String, String> parameters = new HashMap<>();
// many unrelevant code
}
然后我有一个名为TemplateForm 的类,它是通过将Template 作为参数构造的JavaFX 形式。它为地图的每个键创建一个字段并设置关联的值。我希望在文本字段中进行任何更改以相应地更改地图中的相关对。我知道我可以使用textProperty().bind(),但我想保持Template 类完全独立于JavaFX。
我可以考虑一些包装类来包装我的地图并提供绑定方法,但我更喜欢在这里定义一个简单的更改侦听器。但是,在深入研究文档后,我发现没有任何效果:
- 我尝试定义
onInputMethodTextChanged属性,但我的侦听器从未被解雇 - 我尝试在
onKeyTyped方法中使用TextField.getText设置值,但getText返回的值并不总是与字段中显示的值同步 - 我发现
TextInputControl.Content类对我来说是完美的,但受到保护等)。
在不需要修改Template 的情况下做我想做的最好的方法是什么?
【问题讨论】:
标签: java textfield onchange javafx-8