每次单击删除按钮时,如何构建一个删除按钮以从 TextField 中删除一个字符?

How to build a delete button to remove a character from the TextField every time delete button is clicked?

JavaFX 文本字段

如何建立一个删除按钮(可以检测激活了哪个TextField)并在每次点击删除按钮时从TextField中删除一个字符?

(不好意思没说清楚,这里有更多的解释) 我有三个 TextField(如下表所示),当光标位于 tf1 中的其中一个 TextField 时,当我单击 btnDelete 按钮时,可以从 ft1 中删除一个字符(btnDelete 按钮的工作方式与从计算机键盘删除的方式相同)。

@FXML
TextField tf1;
@FXML
TextField tf2;
@FXML
TextField tf3;

@FXML
public void btnDelete(ActionEvent actionEvent) {

}

您的问题的解决方案是使用 focusedProperty 来保存, 当 newValue 为真时,在通用 TextField txt 上,TextField 聚焦 ... 查看此示例代码:

@FXML
TextField tf1;
@FXML
TextField tf2;
@FXML
TextField tf3;

TextField txt;

@FXML
public void btnDelete(ActionEvent actionEvent) {
    txt.setText( txt.getText().substring(0, txt.getText().length()-1));
}

@Override
public void initialize(URL url, ResourceBundle rb) {   

    tf1.focusedProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
            if (newValue){
                txt=tf1;
            }
        }
    });

    tf2.focusedProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
            if (newValue){
                txt=tf2;
            }
        }
    });

    tf3.focusedProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
            if (newValue){
                txt=tf3;
            }
        }
    });
}
textfield.setText(textfield.getText(0, textfield.getLength()-1));