Я пытаюсь создать графический интерфейс, который, когда вы нажимаете на одну из двух переключателей, будет применять другую скидку в зависимости от того, являетесь ли вы новым клиентом или возвращающимся клиентом. Скидка должна применяться к каждому другому варианту, который вы можете выбрать. Моя проблема в том, что каждый раз, когда я нажимаю на флажок, чтобы добавить этот параметр, он продолжает усугублять скидку. В первый раз это правильно, но каждый клик после этого делает скидку выше и выше. Вот мой код флажком:GUI сохраняет уступчивую скидку, когда я переключаю JCheckBox
@FXML
void tires(ActionEvent event) {
if(isNewCustomer==true){
tireRotation=tireRotation*(1.0-newCustomerDiscount);
//costLabel.setText("$ " +DF.format(cost));
}else{
tireRotation=tireRotation*(1.0-regularCustomerDiscount);
// costLabel.setText("$ " +DF.format(cost));
}
if(tireBox.isSelected()){
cost+=tireRotation;
costLabel.setText("$ " +DF.format(cost));
} else {
cost =cost-tireRotation;
costLabel.setText("$ " +DF.format(cost));
}
}
Вот мой код для кнопки радио:
@FXML
void newCustomer(ActionEvent event) {
if (newCustomer.isSelected()){
isNewCustomer=true;
}
}
Любая помощь будет принята с благодарностью!
Во-первых, вы можете удалить 'isNewCustomer == true' и просто использовать' isNewCustomer', так как это 'boolean'. Во-вторых, если новый клиент не выбран, он должен установить 'isNewCustomer = false', и я этого не вижу. В-третьих, вы переопределяете 'tireRotation', и я предполагаю базовую сумму. Я думаю, вместо этого вы должны использовать новую переменную 'tireRotationCost = tireRotation * (1.0-new/regularCustomerDiscount);'. Таким образом, он не будет сложным и вместо этого будет перезаписывать стоимость каждый раз. –
Может быть выполнено в одном методе, который обрабатывает оба переключателя. – Sedrick