JavaFX TextArea onChange 事件
Posted
技术标签:
【中文标题】JavaFX TextArea onChange 事件【英文标题】:JavaFX TextArea onChange event 【发布时间】:2012-04-09 10:05:48 【问题描述】:开发者们好日子 :)
JavaFX 组件 TextArea 是否支持某些事件,例如 onTextChange 或类似事件? 是的,我知道 keyPressed、keyTyped ......但是如果另一个“动作”在 TextArea 上发生变化(例如 txArea.setText("some text")),如何处理事件。
【问题讨论】:
【参考方案1】:与所有 JavaFX 一样,只需将侦听器添加到 TextArea textProperty()
。
【讨论】:
【参考方案2】:import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
textArea.textProperty().addListener(new ChangeListener<String>()
@Override
public void changed(final ObservableValue<? extends String> observable, final String oldValue, final String newValue)
// this will run whenever text is changed
);
【讨论】:
+1 票。对于代码示例,我更喜欢您的答案而不是上面的答案。急于给出最快的答案并不总是好的。 是否可以在 SceneBuilder 中添加这个,或者只是在代码中?【参考方案3】:使用 Lambda 表达式
textArea.textProperty().addListener((obs,old,niu)->
// TODO here
);
【讨论】:
我对此感到很奇怪,直到我意识到更改侦听器是属性对 addListener 的唯一期望。虽然我更希望 (observable, oldVal, newVal) 更加自我记录。以上是关于JavaFX TextArea onChange 事件的主要内容,如果未能解决你的问题,请参考以下文章
JavaFX:在进入 TextArea 时将插入符号/光标放在 TextArea 的末尾