Java市场实验室gui

时间:2014-12-08 06:59:24

标签: java

我已经在这个java程序上工作了一段时间,但我遇到了墙,我需要帮助。我运行这个程序,一切正常,除了优惠券按钮。它有效但当我使用的优惠券数量大于总价时它会显示负数。我需要帮助,以便在输入更高的优惠券号码时出现零。我想我必须编写一个循环(如果bill< 0){str =“0”}。代码链接如下。

http://codepad.org/EhLICVGT

1 个答案:

答案 0 :(得分:0)

bill var中存在逻辑错误;我可以得到它,优惠券应该很多项目但每张优惠券只有一个账单吗?所以请不要将bill var作为本地字段,因为每次事件发生时都会重新显示账单;所以为了使它迭代数据,make class字段见例:

问题代码

...
public void actionPerformed(ActionEvent e)
    {
    String str;
    String couponReciept;
    String coupontest;
    int couponnumber;
    int marketnumber;
    double price;
    double bill = 0; //<---logical error "local field"
    DecimalFormat output = new DecimalFormat("0.00");
    index = grocery.getSelectedIndex();


    price = groceryprice[index];

    System.out.print("Cost = " + price + "$ ");

    str = quanityText.getText();
    marketnumber = Integer.parseInt(str);
    bill = marketnumber * price;


    if (couponyes.isSelected())
   {

    coupontest = couponText.getText();
    couponnumber = Integer.parseInt(coupontest);

    bill = bill - couponnumber;

   }
  ... 

修正代码

...
double bill = 0;
public void actionPerformed(ActionEvent e)
    {
    String str;
    String couponReciept;
    String coupontest;
    int couponnumber;
    int marketnumber;
    double price;

    DecimalFormat output = new DecimalFormat("0.00");
    index = grocery.getSelectedIndex();


    price = groceryprice[index];

    System.out.print("Cost = " + price + "$ ");

    str = quanityText.getText();
    marketnumber = Integer.parseInt(str);
    bill = marketnumber * price;


    if (couponyes.isSelected())
   {

    coupontest = couponText.getText();
    couponnumber = Integer.parseInt(coupontest);

    bill = bill - couponnumber;

   }
  ...

我不确定它会修复整个代码;但在某些方面,这是解决或多或少的具体问题的方法

祝你好运