我有一个场景(在SceneBuilder中创建),该场景带有许多标签,我想通过在标签文本的开头添加红色 Asterisk 来将其中一些显示为必填字段。我看不到如何在SceneBuilder中执行此操作。有没有一种使用CSS的方法。
下面是FXML文件的标签片段:
<Label fx:id="lblFirstName" alignment="CENTER_RIGHT" prefHeight="17.0" prefWidth="295.0" text="First Name:" GridPane.columnIndex="1" GridPane.rowIndex="2">
<padding>
<Insets right="10.0" />
</padding>
</Label>
到目前为止,我发现的所有内容都与HTML文件有关。
色拉建议很好,但我建议使用验证的另一种方法。
请注意,此方法需要ControlsFX库和控制器中的一些代码(不能像您提到的那样在CSS中完成)。
在您的控制器类中创建一个验证器:
ValidationSupport validationSupport = new ValidationSupport();
在初始化方法内将验证(作为必填字段)添加到您的节点(在此示例中为TextField):
validationSupport.registerValidator(myTextField, Validator.createEmptyValidator("Field is required"));
是的,Slaw的建议非常直截了当,并且很有效。您的建议听起来很有趣。我会努力的,现在就让我继续前进。
我尝试了一下,但只设法使其部分工作。当我在左上角的顶部得到一个红色的小三角形时,当文本字段失去焦点时,我没有得到红色的“ X”。我什至尝试给验证器添加严重性,但还是一样。我复制并粘贴了您提供的代码,只是将“ myTextField”替换为我正在使用的控件的文本字段名称(“ tfFirstName”)。另外,我假设当文本字段失去焦点时,该消息将作为工具提示等显示给用户。
@yazterfari(如果键入)并将其删除,然后在TextField为空时触发X。将鼠标悬停在X符号上时会显示消息。
真好!感谢那。