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