我在JavaFX应用程序中的该选项框旁边有一个选择框和文本字段。我希望文本字段中的灰色文本框告诉用户输入什么。但是,我希望根据选择框中选择的内容更改提示文本。
我在线查看并找到了如何使用提示文字的文本字段的代码,但是我无法通过选择框上的changeListener来更改提示文本。
我试过
textfield = new Textfield(newPrompt);
以前已使用不同提示文本声明的文本字段。这没用。如何根据选择框中的用户选择实现更改提示文本的效果?
答案 0 :(得分:2)
不是将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!");
}
});