2016-04-21 69 views
0

我在我的GUI中有兩個JFrame每次用戶點擊按鈕時,如何添加到數量變量?

一個是order幀,另一個是payment幀。

我想添加到quantity變量每次當用戶點擊button。我在按鈕方法下添加了增量邏輯,但似乎只適用於該方法。它不會將+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

+1

您在哪裏調用'calculateub'? – Berger

+0

我想你可能需要將'bquantity [0] ++'改成'bquantity [0] = bquantity [0] + 1' - 我認爲'++'意思是將它加1並返回舊值,但是'bquantity [0] = bquantity [0] + 1'表示增加1並返回新值。 – Thraydor

+0

您需要將bquantity對象保存在一個類中。也許這兩個JFrames都有自己的對象?可能有兩個'= new int [3];' –

回答

0

你需要有場在你的類像

公衆詮釋qvantity = 0;

而適當增加每次都wheb有人點擊按鈕,你又需要的,如果你用它來設置JLabel的文本表示quvantity所有你需要有方法爲點擊按鈕

更新:或者你可以創建一個方法,將增加qvantity並將文本設置爲您使用的標籤。你需要調用這個方法執行

更新2:當你點擊某些按鈕時,你是否嘗試設置小計textField的文本。你可以嘗試用一些方法來計算所有的訂單,然後在付款按鈕上調用該方法,該方法將返回一些int和你需要在小計textField的setText中使用的int,我真的不知道你爲什麼使用txtField爲了它。

+0

是的,我有作爲數組的字段。我通過在actionPerformed方法下添加了bquantity [] ++來增加它。 –

+0

但你需要增加bguantity [0]而不是數組 – GlacialMan

+0

我通過在每個按鈕actionPerformed下添加bquantity [arraynumber] ++來增加它。 –

0

將您的bsub長度更改爲3而不是9.

+0

這是我在這篇文章中的錯誤,在我的代碼中實際上有9個數組。 –

+0

嘗試將您的bsubtotal初始化爲零。 – ERJ

+0

完成但不工作... –

相關問題