如何使文本不显示在TextField中?

时间:2017-09-20 22:38:44

标签: javafx textfield

嗯......我有一个TextField,我希望键入的文本不会出现在组件中,只需要阅读。

原因是我想使用onKeyPressed事件读取一个键,并显示通过getEvent()按下的键。 KeyEvent的GetName()方法。

但有问题:

  • 当您按下Delete键时,字母“' D'从TextField文本中删除。
  • 按空格键时,会在开头添加一个空格。
  • ...

这是我的代码:

this.myTextField.setOnKeyPressed((KeyEvent event) -> {
    shortcut = event.getCode();
    myTextField.setText(shortcut.getName());
});
  • 快捷键是KeyCode
  • myTextField是一个TextField

感谢您的回答!

2 个答案:

答案 0 :(得分:0)

使用setOnKeyReleased代替setOnKeyPressed方法

textField.setOnKeyReleased(e -> {
            KeyCode key = e.getCode();
            textField.setText(key.getName());
        });

答案 1 :(得分:0)

唉... 我找到了一个解决方案,而且非常简单。

我只将TextField更改为Button。是的,就是这样(当然还有一些CSS)。

Button具有相同的事件,可以设置文本。这就是我所需要的一切。