当我切换JCheckBox时,GUI保持复合折扣

时间:2016-11-15 04:19:28

标签: user-interface javafx scenebuilder jcheckbox jradiobutton

我正在尝试创建一个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;
    }
}

非常感谢任何帮助!

1 个答案:

答案 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;
}