0

Я пытаюсь создать графический интерфейс, который, когда вы нажимаете на одну из двух переключателей, будет применять другую скидку в зависимости от того, являетесь ли вы новым клиентом или возвращающимся клиентом. Скидка должна применяться к каждому другому варианту, который вы можете выбрать. Моя проблема в том, что каждый раз, когда я нажимаю на флажок, чтобы добавить этот параметр, он продолжает усугублять скидку. В первый раз это правильно, но каждый клик после этого делает скидку выше и выше. Вот мой код флажком: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; 
    } 
} 

Любая помощь будет принята с благодарностью!

+1

Во-первых, вы можете удалить 'isNewCustomer == true' и просто использовать' isNewCustomer', так как это 'boolean'. Во-вторых, если новый клиент не выбран, он должен установить 'isNewCustomer = false', и я этого не вижу. В-третьих, вы переопределяете 'tireRotation', и я предполагаю базовую сумму. Я думаю, вместо этого вы должны использовать новую переменную 'tireRotationCost = tireRotation * (1.0-new/regularCustomerDiscount);'. Таким образом, он не будет сложным и вместо этого будет перезаписывать стоимость каждый раз. –

+0

Может быть выполнено в одном методе, который обрабатывает оба переключателя. – Sedrick

ответ

0

Я просто перечитываю вопрос. Создание глобальных переменных. В ваших методах переключателя задайте глобальную переменную finalCost. Установка переменной в пределах, если, например:

глобальные переменные:

double finalCost = 0; 
double initialCharge = 200; 
double discount= 50; 
double newAccountDiscount= 25; 

Первый метод:

if(tireBox.isSelected() && newCustomer.isSelected()) 
{ 
    finalCost = initialCharge - discount - newAccountDiscount; 
} 
else if(tireBox.isSelected()) 
{ 
    finalCost = initialCharge - discount; 
} 
else if(newCustomer.isSelected()) 
{ 
    finalCost = initialCharge - newAccountDiscount; 
} 
else 
{ 
    finalCost = initalCharge; 
} 

ов Метод econd:

if(tireBox.isSelected() && newCustomer.isSelected()) 
{ 
    finalCost = initialCharge - discount - newAccountDiscount; 
} 
else if(tireBox.isSelected()) 
{ 
    finalCost = initialCharge - discount; 
} 
else if(newCustomer.isSelected()) 
{ 
    finalCost = initialCharge - newAccountDiscount; 
} 
else 
{ 
    finalCost = initalCharge; 
}