У меня есть текстовые поля в форме, где я выполняю действие, когда поле не в фокусе.У меня есть отдельный код слушателя для каждого поля, и мне было интересно, как я могу объединить этот код так, чтобы был один код слушателя для всех полей, так как у меня есть дублирование кода, и отличается только имя текстового поля.
@Override
public void initialize(URL url, ResourceBundle rb) {
callPremium.focusedProperty().addListener(new ChangeListener<Boolean>()
{
@Override
public void changed(ObservableValue<? extends Boolean> arg0, Boolean oldPropertyValue, Boolean newPropertyValue)
{
if (newPropertyValue == false && !callPremium.getText().trim().isEmpty())
{
SIMTradeCalculatorModel model = new SIMTradeCalculatorModel(numShares, purchasePrice, brokerage, callStrikePrice, putStrikePrice, putPremium, callPremium);
model.validateDecimal(callPremium, errorDisplay, performCalculationButton);
model.checkAllFields(performCalculationButton);
}
else {
callPremium.setText(callPremium.getText().trim());
}
}
});
putPremium.focusedProperty().addListener(new ChangeListener<Boolean>()
{
@Override
public void changed(ObservableValue<? extends Boolean> arg0, Boolean oldPropertyValue, Boolean newPropertyValue)
{
if (newPropertyValue == false && !putPremium.getText().trim().isEmpty())
{
SIMTradeCalculatorModel model = new SIMTradeCalculatorModel(numShares, purchasePrice, brokerage, callStrikePrice, putStrikePrice, putPremium, callPremium);
model.validateDecimal(putPremium, errorDisplay, performCalculationButton);
model.checkAllFields(performCalculationButton);
}
else {
putPremium.setText(putPremium.getText().trim());
}
}
});
}