JavaFX:实时修改按钮文字

JavaFX: modify button text in real time

我有一个带有上下文菜单的按钮,其中包含 MenuItem rename
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); }
}