【问题标题】:How can I disable the spacebar in a textfield in JavaFX?如何在 JavaFX 的文本字段中禁用空格键?
【发布时间】:2020-09-07 07:03:52
【问题描述】:

我有一个问题。我想完全禁用该文本字段的空格键,因此我的输入中没有空格。这怎么可能?

if (event.getCode() == KeyCode.SPACE) {
                    System.out.println("Spacebar key detected!");
                    textfieldName.setText(textfieldName.getText().substring(textfieldName.getLength() -1));
                }
            });

这是我发现的,但我想完全禁用空格键。谁能帮帮我?

感谢您的回答:)

【问题讨论】:

  • 你可以吞下这个事件。
  • 您可能正在寻找的是 TextFormatter 。它需要valueConverter 和(更重要的是)filter。过滤器用于所有输入(包括剪贴板事件)。看看这些类的文档,应该很清楚如何实现你想要的机制

标签: java javafx textfield


【解决方案1】:

也许this 会有所帮助

mytextfield.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
        public void handle(KeyEvent event) {          
            if (event.getCode() == KeyCode.SPACE) {
                event.consume(); // to cancel space key               
            }
        }
    });

另一种方法filter 它就像 cmets 中建议的 @n247s 一样

【讨论】:

  • 我尝试了事件过滤方法,使用事件仍然没有阻止文本字段中的空格,但它正在注册?
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多