JavaFX - 如何实时修改按钮文本

时间:2015-05-12 20:07:16

标签: java button javafx

我有一个带有ContextMenu的按钮,其中包含MenuItem rename rename.setOnMouseClicked应该可以更改按钮中的文本:用户实际上可以删除文本中的字母或写入它然后按回车来验证他输入的内容,以某种方式作为textField工作。

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

1 个答案:

答案 0 :(得分:3)

以下是:

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); }
}