【问题标题】:JavaFX TextArea onChange eventJavaFX TextArea onChange 事件
【发布时间】:2012-04-09 10:05:48
【问题描述】:

开发者们好日子 :)

JavaFX 组件 TextArea 是否支持某些事件,例如 onTextChange 或类似事件? 是的,我知道 keyPressed、keyTyped ......但是如果另一个“动作”在 TextArea 上发生变化(例如 txArea.setText("some text")),如何处理事件。

【问题讨论】:

    标签: components textarea javafx


    【解决方案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) 更加自我记录。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 2012-05-25
      • 2017-01-23
      • 1970-01-01
      • 2021-04-24
      相关资源
      最近更新 更多