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

JavaFX自定义TextField限制

高云瀚
2023-03-14
TextField input = new TextField();
input.setPromptText(" (x,y,z) + q(a,b,c) + p(a,b,c) ");
input.getText();

这似乎是一种非常“愚蠢”的方式...有人知道更好的方法吗?也许java有一些内置的方法?

共有1个答案

时同
2023-03-14

您可以使用控件FX验证支持来实现此功能:

在控制器中,您可以将validator设置为文本字段:

validationSupport = new ValidationSupport();
        validationSupport.registerValidator(textField, true, ValidationForm.formatValidate);

然后,您可以在一个单独的类中根据需要设计验证器:

public class ValidationForm {

    /**
     * Field allows only if correctly formatted
     */
    public static Validator<String> formatValidate = (Control control, String value) -> {
        boolean condition = value != null
                ? !value.matches("^\\({1}+[0-9]+\\,[0-9]+\\,[0-9]+\\){1}+\\+{1}"
                        + "+[a-z]{1}+\\({1}+[0-9]+\\,[0-9]+\\,[0-9]+\\){1}+\\+{1}"
                        + "+[a-z]{1}+\\({1}+[0-9]+\\,[0-9]+\\,[0-9]+\\){1}$") : value == null;

        return ValidationResult.fromMessageIf(control, "Not a valid input \n"
                + "Should be formatted \" (x,y,z) + q(a,b,c) + p(a,b,c) \"",
               Severity.ERROR, condition);
    };
   ...
 类似资料:
  • 我正在尝试创建一个自定义标签类型,该类型将包含一个“淡出”函数。这用于显示将闪烁然后隐藏的消息。 我正在使用Eclipse、SceneBuilder和Javafx。我不知道该怎么做,也不知道是否可能,但到目前为止,我已经做到了: 这显然行不通。 这是我第一次在一个文件中处理凌乱的代码(因此,我尝试将代码从版本1拉入一个新的“对象”,我可以在多个类中使用它): 如果您有任何建议或帮助,我们将不胜感激

  • 我正在用JavaFX制作一个2D游戏,当检测到冲突时,我得到的结果相当不准确,因为玩家精灵被设置为矩形的填充,因此没有预期的边框。有没有办法让我自己的形状尽可能准确? 我的另一个想法是检查碰撞的像素是否透明,然后如果它是,则不会结束游戏。有谁知道一种方法可以获得碰撞像素的坐标,以便从那里我可以使用PixelReader进行检查? 如果有人知道更好的方法,请告诉我! 谢谢,伊森

  • 我尝试用自定义控制器制作一个自定义组件。自定义组件已经显示在应用程序上,但我未能向其添加属性。 项目结构: null 布尔马尔科 完全错误: 原因:java.lang.nullPointerException:无法调用“javafx.scene.image.imageeview.setimage(javafx.scene.image.image)”,因为“controller.topbarbtn.

  • 问题内容: 我有简单的日期选择器代码,它可以禁用所有比选定日期更早的日期,但是我还需要能够禁用其他日期(例如:2014年10月17日至2014年10月19日)。以也禁用特定日期的方式更改它吗? 公共类DatePickerSample扩展了Application { } 问题答案: 如果要禁用多个日期范围,则可以创建以下POJO: 现在,您可以定义要在日历中禁用的范围的集合。例如: 最后,您只需要检

  • 我正在尝试为JavaFX创建一个非常简单的自定义。运行应用程序时,

  • 我想问一下在JavaFX中使用自定义对象创建ListView的最佳方法,我想要一个列表,每个项目如下所示: 我搜索发现大多数人都是用细胞工厂的方法来做的。还有别的办法吗?例如,使用custome fxml? 这是我的fmxl档案 这是我的对象任务: 我想让物品看起来像单个容器,但我没有找到任何方法。关于使用什么有什么建议吗?最好的方法是什么?