我正在尝试创建一个GUI,当您单击其中一个单选按钮时,它将根据您是新客户还是返回客户应用不同的折扣。折扣将应用于您可以选择的每个不同选项。我的问题是,每次我点击复选框添加选项,它都会使折扣更加复杂。第一次是正确的,但是它之后的每次点击都会使折扣越来越高。这是我的复选框代码:
@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;
}
}
非常感谢任何帮助!
答案 0 :(得分: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;
}
第二种方法:
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;
}