每次用户点击按钮时,如何添加数量变量?

时间:2016-04-21 12:17:21

标签: java swing

我的GUI中有两个JFrame

一个是order帧,另一个是payment帧。

每次用户点击quantity时,我都想添加button变量。我在按钮方法下添加了increment-logic,但它似乎只适用于该方法。它不会将+1添加到我的数组变量中。

这是我的代码:

class Bun extends javax.swing.JFrame {
 String decimal = "0.00";
 DecimalFormat df = new DecimalFormat(decimal);
 public final String [] bname = new String [] {"Tuna Sandwich","Garlic Bread","Redbean Bun"};
 public final double [] bprice = new double [] {1.20, 1.50, 1.50};
 public double [] bsub = new double [9];
 public int [] bquantity = new int[]{0,0,0};
 public double bsubtotal;

private void BtnTunaSandwichActionPerformed(java.awt.event.ActionEvent evt) {                                                
    bquantity[0]++;
    numTunaSandwich.setText(Integer.toString(bquantity[0]));
}                                               

private void BtnGarlicBreadActionPerformed(java.awt.event.ActionEvent evt) {                                               
   bquantity[1]++;
   numGarlicBread.setText(Integer.toString(bquantity[1]));
}                                              

private void BtnRedbeanBunActionPerformed(java.awt.event.ActionEvent evt) {                                              
   bquantity[2]++;
   numRedbeanBun.setText(Integer.toString(bquantity[2]));
}                      

public void calculatesub()
{
    for(int counter=0;counter<bsub.length;counter++)
    {
        bsub[counter]=bquantity[counter]*bprice[counter];
    }
}
public void setsubtotal()
{
    for(int counter=0;counter<bsub.length;counter++)
    {
        bsubtotal += bsub[counter];
    }
}
public String getsubtotal()
{
    return (df.format(bsubtotal));
}

这是我的付款框架代码:

private void subtotalActionPerformed(java.awt.event.ActionEvent evt) {                                         
        Bun bun = new Bun();
        bun.calculatesub();
        bun.setsubtotal();
        subtotal.setText(bun.getsubtotal());
}      

每当我运行程序并尝试计算小计时,它会显示0

我的界面:

Order Frame Payment Frame

2 个答案:

答案 0 :(得分:0)

您需要在班级中拥有

字段

public int qvantity = 0;

每当有人点击按钮并且你需要再次在jlabel上设置文本时,如果你用它来表示你需要点击按钮的所有方法

更新:或者您可以创建一个方法来增加qvantity并将文本设置为您使用的标签。这个方法需要在actionPerformed中调用

更新2:当您单击某个按钮时,是否尝试设置小计textField的文本。您可以尝试一些计算所有订单的方法,然后在付款按钮上调用该方法,该方法将返回一些int和您需要在subotal textField的setText中使用的int,我真的不知道为什么你使用txtField。

答案 1 :(得分:0)

将您的bsub长度更改为3而不是9。