JavaFX:实时修改按钮文本

JavaFX:实时修改按钮文本,java,button,javafx,Java,Button,Javafx,我有一个带有上下文菜单的按钮,其中包含一个菜单项重命名 rename.setOnMouseClicked应该提供更改按钮中文本的可能性:用户实际上可以删除文本中的一个字母,或者编写它,然后按enter键验证他键入的内容,以某种方式作为textField 可以这样做吗?如果是的话,我怎么办?谢谢是 以下是方法: public class EditableButtonApp extends Application { @Override public void start(Stag

我有一个带有上下文菜单的按钮,其中包含一个
菜单项重命名

rename.setOnMouseClicked应该提供更改按钮中文本的可能性:用户实际上可以删除文本中的一个字母,或者编写它,然后按enter键验证他键入的内容,以某种方式作为textField

可以这样做吗?如果是的话,我怎么办?谢谢

以下是方法:

public class EditableButtonApp extends Application {

    @Override
    public void start(Stage primaryStage) {
        BorderPane root = new BorderPane();

        root.setCenter(new EditableButton("Editable Button"));

        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }

    class EditableButton extends Button {
        TextField tf = new TextField();

        public EditableButton(String text) {
            setText(text);
            setOnMouseClicked(e -> {
                tf.setText(getText());
                setText("");
                setGraphic(tf);
            });

            tf.setOnAction(ae -> {
//              if (validateText(tf.getText())) {// this is where you would validate the text
                setText(tf.getText());
                setGraphic(null);
//            }
            });
        }
    }

    public static void main(String[] args) { launch(args); }
}

调用
按钮.setText(String)
方法是否无效?这是对标题问题“我可以修改按钮文本吗?”的建议,我不确定该问题是否与正文中的问题相同。否button.setText正在工作,但我想做的是在程序已打开时修改文本。例如,按钮上的用户可以在处理文本字段时修改文本,回车按钮将调用
button.setText(String)
来验证用户键入的内容。我将尝试它,并在它工作后验证!谢谢!