JavaFX 不显示工具提示消息

问题描述 投票:0回答:1

当尝试在 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 中是否有任何合适的替代方案用于此目的?

java user-interface javafx material-ui desktop-application
1个回答
0
投票

切勿将

@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;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.