JavaFX - Switch com textfield

Queria saber se tem alguma maneira de eu substituir todas esses métodos value1KeyPressed ao value7KeyPressed por apenas um método com um Switch, ou teria algum outra forma para deixar todos em apenas um método.

private static final NumberFormat currency = NumberFormat.getCurrencyInstance();
private BigDecimal valuePercentage = new BigDecimal(1.025);

private BigDecimal value1 = new BigDecimal(0.00);
private BigDecimal value2 = new BigDecimal(0.00);
private BigDecimal value3 = new BigDecimal(0.00);
private BigDecimal value4 = new BigDecimal(0.00);
private BigDecimal value5 = new BigDecimal(0.00);
private BigDecimal value6 = new BigDecimal(0.00);
private BigDecimal value7 = new BigDecimal(0.00);

@FXML private TextField value1TextField;

@FXML private TextField value2TextField;

@FXML private TextField value3TextField;

@FXML private TextField value4TextField;

@FXML private TextField value5TextField;

@FXML private TextField value6TextField;

@FXML private TextField value7TextField;

@FXML private TextField totalTextField;

@FXML private Button calculateButton;


@FXML
private void calculateButtonPressed() {
    BigDecimal sum = value1.add(value2).add(value3).add(value4).add(value5).add(value6).add(value7);
    BigDecimal total = sum.multiply(valuePercentage);

    totalTextField.setText(currency.format(total));
    totalTextField.requestFocus();
    totalTextField.copy();
}

@FXML
private void value1KeyPressed(KeyEvent event) {
    value1 = enterKeyPressed(value1TextField, value2TextField, event);
}

@FXML
private void value2KeyPressed(KeyEvent event) {
    value2 = enterKeyPressed(value2TextField, value3TextField, event);
}

@FXML
private void value3KeyPressed(KeyEvent event) {
    value3 = enterKeyPressed(value3TextField, value4TextField, event);
}

@FXML
private void value4KeyPressed(KeyEvent event) {
    value4 = enterKeyPressed(value4TextField, value5TextField, event);
}

@FXML
private void value5KeyPressed(KeyEvent event) {
    value5 = enterKeyPressed(value5TextField, value6TextField, event);
}

@FXML
private void value6KeyPressed(KeyEvent event) {
    value6 = enterKeyPressed(value6TextField, value7TextField, event);
}

@FXML
private void value7KeyPressed(KeyEvent event) {
    value7 = enterKeyPressed(value7TextField, calculateButton, event);
}

@FXML
private void calculateKeyPressed(KeyEvent event) {
    if (isPressedEnterOrTab(event)) {
        calculateButtonPressed();
    }
}

private BigDecimal enterKeyPressed(TextField currentField, Control nextField, KeyEvent event) {
    if (isPressedEnterOrTab(event)) {
        try {
            BigDecimal value = new BigDecimal(currentField.getText().replace(",", "."));
            nextField.requestFocus();

            return value;
        } catch (NumberFormatException e) {
            currentField.setText("0,00");
            currentField.requestFocus();
            currentField.selectAll();
        }
    }

    return BigDecimal.ZERO;
}

private boolean isPressedEnterOrTab(KeyEvent event) {
    return event.getCode() == KeyCode.ENTER || event.getCode() == KeyCode.TAB;
}

Tente criar um keyPressed só e setar em todos os textFields, e nesse método pegar o id para comparar ex:

EventHandler evento = (event) -> {
        switch( ((TextField) event.getSource()).getId()){
            case "id1": {
                // Faz algo
            }
        }
    };

    value1TextField.setOnKeyPressed(evento);
    value2TextField.setOnKeyPressed(evento);
    value3TextField.setOnKeyPressed(evento);
    value4TextField.setOnKeyPressed(evento);

o getSource devolve o componente (node) que originou o evento mas ele devolve um Object (que sabemos que é um TextField no seu caso).

Obrigado cara, conseguir resolver, me ajudou muito isso que me passou, deixei desta forma:

@FXML
private void keyPressed(KeyEvent event) {

    switch (((Control) event.getSource()).getId()) {
        case "value1TextField":
            value1 = enterKeyPressed(value1TextField, value2TextField, event);
            break;

        case "value2TextField":
            value2 = enterKeyPressed(value2TextField, value3TextField, event);
            break;

        case "value3TextField":
            value3 = enterKeyPressed(value3TextField, value4TextField, event);
            break;

        case "value4TextField":
            value4 = enterKeyPressed(value4TextField, value5TextField, event);
            break;

        case "value5TextField":
            value5 = enterKeyPressed(value5TextField, value6TextField, event);
            break;

        case "value6TextField":
            value6 = enterKeyPressed(value6TextField, value7TextField, event);
            break;

        case "value7TextField":
            value7 = enterKeyPressed(value7TextField, calculateButton, event);
            break;

        case "calculateButton":
            if (isPressedEnterOrTab(event)) {
                calculateButtonPressed();
            }
            break;
    }
}

Porque com o EventHandler com qualquer evento que ocorria na Field ele chamava o switch, mas obrigado pela ajuda.