更改 JavaFX 文本字段的提示文本

Changing prompt text for JavaFX textfield

我在 JavaFX 应用程序中有一个选择框和该选择框旁边的文本字段。我希望文本字段中的灰色文本框告诉用户输入什么。但是,我希望提示文本根据选择框中的选择进行更改。

我在网上查看并找到了有关如何使用带有提示文本的文本字段的代码,但我无法通过选择框上的 changeListener 更改提示文本。

我试过了

textfield = new Textfield(newPrompt);

使用先前已使用不同提示文本声明的文本字段。这没有用。如何实现根据用户在选择框中的选择更改提示文本的效果?

不要将 textfield 变量重新分配给新的 TextField 对象(通过 textfield = new TextField(newPrompt);),而是在 ChangeListener 中使用 TextField 的 setPromptText(String s) 方法:

final ChoiceBox<String> box = ...; //choicebox created and filled

box.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
        @Override
        public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
            textfield.setPromptText("New Prompt Text!");
        }
    });