当前位置: 首页 > 知识库问答 >
问题:

如何停止限制JavaFX文本框上的击键

白驰
2023-03-14
@FXML public void limitKeys(KeyEvent e){
  if(e.getSource().equals(this.propertySerialNum)){
      if(this.propertySerialNum.getLength() > 30){
          switch(e.getCode()){
              case BACK_SPACE:
                  break;
              default:
                  e.consume();
                  break;
          }
      }
  }
}

共有1个答案

蔺霄
2023-03-14

您可以创建自己的TextField并在SceneBuilder中使用它。

这篇文章解释了一个很好的例子。

通常,在onkeypressed事件上绑定自己并不总是阻止字段的最大长度(在textfield内粘贴内容)。在我链接的帖子中有很多很好的例子。

class LimitedTextField extends TextField {

    private final int limit;

    public LimitedTextField(int limit) {
        this.limit = limit;
    }

    @Override
    public void replaceText(int start, int end, String text) {
        super.replaceText(start, end, text);
        verify();
    }

    @Override
    public void replaceSelection(String text) {
        super.replaceSelection(text);
        verify();
    }

    private void verify() {
        if (getText().length() > limit) {
            setText(getText().substring(0, limit));
        }

    }
};
 类似资料:
  • 我有一个文本框。当我单击“添加”按钮时,我将键发送到文本框,我想添加另一行,所以我再次单击“添加”按钮,但它正在添加另一个输入框来输入值,但它总是覆盖第一行。//单击添加行按钮//ngDriver。FindElement(ByXPath("//div[1]/div[3]/form/div/field dset[2]/div/div[4]/按钮")。单击();

  • 问题内容: 我创建了一个可以旋转的框,单击该框可以执行一些操作。 我遇到的问题是, 例如,在此框的所有面上都显示文本。正面1个,顶部2个,背面3个,底部4个, 左侧5个,右侧6个。 我知道StackPane可用于在 多维数据集的顶部覆盖一个文本框,但在这种情况下我认为这真的没有帮助。由于box 本质上是一个预先构造的TriangleMesh,可以这样做吗?就目前而言 ,box没有任何内置功能可以执

  • 问题内容: 我有一个复选框,希望对click事件执行一些Ajax操作,但是该复选框也位于容器内,它具有自己的单击行为,当单击该复选框时,我不想运行该行为。此示例说明了我要执行的操作: 但是,我不知道如何在不导致默认点击行为(复选框变为选中/未选中)的情况下停止事件冒泡。 以下两项都停止了事件冒泡,但也没有更改复选框状态: 问题答案: 更换 与 event.stopPropagation() 停止将

  • 代码非常简单,我搜索了一下,发现我只会用到 这似乎不起作用,我也尝试过使用平台参数,比如 下面是您可以运行的测试应用程序: 锁定得可拥有同步器:-无 更新:我正在Linux Fedora 16 64bit上使用最新的Oracle JDK 7u17 64bit。

  • 我为浏览器游戏制作了脚本。在这个游戏中,我站着不动,我的脚本在某些地方点击bksononechno,但我需要的是,如果我点击字母,这个脚本将自杀,而不是试图关闭浏览器及其在浏览器中的选项卡和类似的东西。 抱歉出错了。

  • 我想在我的项目中使用动画GIF,但我不知道如何停止循环动画。我的意思是,我希望GIF只能播放1次。 谢谢!