当尝试在 JavaFX 中使用 Tooltip 而不是 Label 时,不会显示验证消息。我还尝试使用一些替代方法来显示 TextBox 控件的消息,但无法正常工作。这是一个示例实现:
@FXML
private Tooltip nameTooltip;
private boolean validateNameFields(List<String> filterParameters) {
nameTooltip = new Tooltip();
if (!!areAllNamesAreValid(filterParameters)) {
nameTooltip.setText("Invalid name...");
nameTextField.setStyle("-fx-border-color: red;");
return false;
} else {
nameTooltip.setText("");
nameTextField.setStyle("");
return true;
}
}
另一方面,我也会考虑使用一些库,例如进行此类实施的材料。 JavaFX 中是否有任何合适的替代方案用于此目的?
切勿将
@FXML
带注释的字段设置为其他值。
确保在 FXML 或 Java 中的目标字段上设置工具提示。
这里是如何根据您问题中的代码在 Java 中设置工具提示的示例。
删除 FXML 中任何提及
nameTooltip
的内容,以及 Java 代码中关于 @FXML
的 nameTooltip
注释。
将您提供的 Java 代码修改为:
// other code where you properly initialize nameTextField
// . . .
private Tooltip nameTooltip = new Tooltip("Invalid name...");
private boolean validateNameFields(List<String> filterParameters) {
if (!areAllNamesAreValid(filterParameters)) {
nameTextField.setTooltip(nameTooltip);
nameTextField.setStyle("-fx-border-color: red;");
return false;
} else {
nameTextField.setTooltip(null);
nameTextField.setStyle("");
return true;
}
}